이전 버전의 Xcode 또는 Xamarin.iOS를 사용할 수 있나요?

Xamarin 설명서에서는 권장되는 최신 Xamarin.iOS 및 Xcode를 사용하는 것으로 가정합니다. 그러나 일부 고객은 이전 Xamarin.iOS 및/또는 Xcode를 사용하는 것을 선호하며 결과에 대한 세부 정보를 선호합니다.

릴리스 정보에는 다음 경고가 포함되어 있습니다.

Warning

이전 Xcode 버전 사용

이전 Xcode 버전(위의 요구 사항에 멘션 버전보다)을 사용하는 것이 가능하지만 일부 기능을 사용할 수 없는 경우가 많습니다. 또한 몇 가지 제한 사항에는 다음과 같은 해결 방법이 필요할 수 있습니다.

  • 정적 registrar 애플리케이션을 빌드하려면 Xcode 헤더 파일이 필요하며, API가 누락된 경우 오류가 발생 MT0091 합니다 MT4109 . 대부분의 경우 관리형 링커를 사용하도록 설정하면 API를 제거하여 도움이 됩니다.
  • Xcode 9.0+ 도구 체인을 사용하지 않는 한 비트코드 빌드(tvOS 및 watchOS용)는 앱 스토어에 제출하지 못할 수 있습니다.

추가 정보

Microsoft는 애플리케이션을 개발하고 제출할 때 최신 Xcode 및 최신 Xamarin.iOS 릴리스를 사용하는 것이 좋습니다. Apple은 애플리케이션을 제출할 때 최신 Xcode를 사용해야 합니다.

최신 Xcode를 사용하면 애플리케이션이 이전 iOS 버전을 대상으로 하는 것을 방지할 수 없습니다. 지원하는 iOS 버전은 Info.plist 항목 및 애플리케이션에서 사용하는 API를 기반으로 합니다.

여러 버전의 Xcode를 나란히 설치할 수 있으며 Xcode101.app 및 Xcode102.app 같은 다른 이름으로 설치할 수 있습니다. 여러 버전을 사용하는 경우 Mac용 Visual Studio 설정 명령줄 도구를 사용하여 활성 Xcodexcode-select설정해야 합니다.

그러나 드문 경우지만 이전 구성 요소를 사용해야 할 수 있습니다. 이 설명서에서는 최신 버전보다 오래된 버전을 사용할 때 발생할 수 있는 일반적인 문제에 대해 설명합니다.

Apple의 각 릴리스는 독특하며 여기에 문서화되지 않은 다른 함정을 만날 수 있습니다.

이러한 문제는 때로는 해결하기가 사소하지 않으므로 가능한 경우 최신 Xcode 및 최신 Xamarin.iOS의 지원되는 구성을 고수합니다.

이전 Xcode에서 이전 Xamarin.iOS 사용

적어도 일정 시간 동안 Xamarin.iOS 및 Xcode를 업데이트하지 않을 수 있습니다. 제한은, 어떤 시점에서, 애플은 응용 프로그램을 제출하는 Xcode의 최소 버전이 필요합니다. 이 시점에서 모든 구성 요소(macOS, Xcode 및 Xamarin.iOS)를 최신 버전(또는 Apple 및 일치하는 Xamarin.iOS 릴리스에 필요한 Xcode의 새 최소 버전)으로 업데이트해야 합니다.

일반적으로 작은 변경 내용을 점진적으로 업데이트하고 따라가는 것이 더 쉽습니다. 업데이트를 따라가기 어려울 수 있는 대규모 프로젝트의 경우 알려진 작업 집합을 유지하는 것이 좋은 타협이 될 수 있습니다.

이전 Xcode에서 새 Xamarin.iOS 사용

일반적으로 Xamarin.iOS는 합리적으로 가능할 때마다 이전 Xcode 릴리스를 지원합니다. 몇 가지 잠재적인 과제는 다음과 같습니다.

  • 최신 Xamarin.iOS는 선택한 Xcode에 없는 일부 기능 및 API를 지원할 수 있습니다.
  • 정적 registrar 애플리케이션을 빌드하려면 Xcode 헤더 파일이 필요하며, API가 누락된 경우 오류가 발생 MT0091 합니다MT4109.
    • 대부분의 경우 관리형 링커를 사용하도록 설정하면 사용하지 않는 경우 새 API에 대한 관리되는 바인딩을 제거하여 도움이 됩니다.
  • Xcode 9.0+ 도구 체인을 사용하지 않는 한 비트코드 빌드(tvOS 및 watchOS용)는 앱 스토어에 제출하지 못할 수 있습니다.

이전 Xamarin.iOS에서 새 Xcode 사용

Xamarin.iOS가 새 Xcode의 변화하는 요구 사항을 예측할 수 없으므로 이 사용 사례는 훨씬 더 어렵습니다. macOS의 업데이트 문제가 발생할 수도 있으며 호환성 패치가 없으면 Xamarin.iOS의 많은 부분이 영향을 받을 수 있습니다.

다음을 포함하여 문제가 발생할 수 있는 여러 가지 잠재적 영역이 있습니다.

  • 비호환성 mlaunch:
    • 시뮬레이터 지원이 제대로 작동하지 않거나 전혀 작동하지 않을 수 있습니다.
    • 디바이스 지원이 제대로 작동하지 않거나 전혀 작동하지 않을 수 있습니다.
  • 알 수 없는 지원 mtouch
    • 새 프레임워크에 대한 지원 없음
    • 새 자격에 대한 지원 없음
    • 새 도구 또는 업데이트된 도구에 대한 지원 없음
      • 이는 코드 서명에도 영향을 줄 수 있습니다.

새 AppStore 제출 규칙

Apple은 언제든지 AppStore 제출 규칙을 업데이트할 권리를 보유합니다. 이러한 규칙 변경 내용은 경우에 따라 미리 발표됩니다. 이러한 변경 내용 중 일부에는 지원 도구 변경이 필요하며, 업데이트된 Xamarin.iOS 구성 요소가 필요합니다.

규칙 변경 외에도 Apple은 종종 제출된 앱에 추가 유효성 검사를 추가하거나 기존 앱을 강화합니다. 이러한 중 일부는 도구(예: 새 차단 목록에 추가된 기호)를 변경해야 합니다. 이러한 중 상당수는 규칙의 공지(또는 목록)가 없기 때문에 제출하는 고객에 의해 처음 발생합니다.

요약

가능하면 Apple의 지침에 따라 앱 스토어에서 릴리스된 최신 Xcode를 개발하고 제출하여 안전하게 플레이하세요.

따라서 릴리스된 최신 Xamarin.iOS를 사용합니다. 이렇게 하면 제출된 애플리케이션에 영향을 줄 수 있는 최신 수정 사항을 추적하고 가장 최근의 규칙 변경 내용을 준수합니다.

가능하지 않은 경우 일치하는 이전 Xcode 및 Xamarin.iOS 릴리스를 사용하는 것이 좋습니다. 이것은 한 동안 작동 할 수 있습니다, 하지만 어떤 시점에서 애플은 새로운 도구를 주장 할 것이다 그래서 그에 따라 계획.