32/64비트 플랫폼 고려 사항
iOS와 macOS는 역사적으로 32비트 및 64비트 앱을 모두 지원해 왔지만 Apple은 점차 32비트 지원을 중단했습니다.
iOS 11을 기준으로 32비트 앱은 더 이상 시작되지 않으며 App Store에 대한 모든 제출은 64비트 지원해야 합니다.
2018 년 1월부터 Mac App Store에 제출된 새 앱은 64비트 지원해야 하며 기존 앱은 2018년 6월까지 업데이트해야 합니다.
Xamarin의 클래식 API(XamMac.dll
및 monotouch.dll
)는 32비트 애플리케이션만 지원합니다. 그러나 새 Xamarin.iOS 및 Xamarin.Mac 애플리케이션은 기본적으로 통합 API(Xamarin.iOS
및Xamarin.Mac
)를 사용하므로 필요에 따라 32비트와 64비트를 모두 대상으로 지정할 수 있습니다.
iOS
Xamarin.iOS 앱의 64비트 빌드 사용
Warning
이 섹션은 역사적인 이유로 포함되어 있으며 이전 Xamarin.iOS 프로젝트를 통합 API로 이동하고 64비트를 지원하는 데 도움이 됩니다. 모든 새 Xamarin.iOS 프로젝트는 기본적으로 통합 API 및 대상 64비트를 사용합니다.
통합 API로 변환된 Xamarin.iOS 모바일 애플리케이션의 경우 개발자는 64비트를 대상으로 빌드 설정을 수동으로 업데이트해야 합니다.
ARMv7s는 i전화 5 이상에 포함된 A6 프로세서에서만 지원됩니다. ARMv7 코드는 ARMv6보다 빠르고 작으며 i전화 3GS 이상에서만 작동하며, iPad 또는 최소 iOS 버전 5.0을 대상으로 할 때 Apple에서 필요합니다. ARMv6는 모든 디바이스에서 작동하지만 Xcode 4.5 이상과 함께 제공되는 컴파일러에서 더 이상 지원되지 않습니다.
ARM64는 i전화 6 또는 기타 64비트 디바이스에서 iOS 8을 지원하는 데 필요하며, iTunes App Store에서 새로 제출하거나 종료하는 애플리케이션을 업데이트할 때 Apple에서 필요합니다.
다양한 iOS 디바이스의 기능을 포괄적으로 살펴보려면 Apple의 디바이스 호환성 문서를 검사.
64비트 및 이진 크기 증가
Apple이 32비트에서 64비트로 전환하는 동안 iOS 앱은 32비트 및 64비트 하드웨어 모두에서 실행해야 합니다. 이 때문에 Xamarin의 통합 API를 통해 개발자는 둘 다 대상으로 지정할 수 있습니다.
32비트 아키텍처와 64비트 아키텍처를 모두 대상으로 지정하면 애플리케이션의 크기가 크게 증가합니다. 그러나 이렇게 하면 최신 디바이스가 이전 디바이스를 지원하면서 최적화된 코드를 실행할 수 있습니다.
Important
iTUNES 앱 스토어 에 iOS 애플리케이션을 제출할 때 다음 메시지가 표시되면 "경고 ITMS-9000: 64비트 지원이 없습니다. 2015년 2월 1일부터 App Store에 업로드된 새 iOS 앱은 64비트 지원을 포함하고 Xcode 6 이상에 포함된 iOS 8 SDK를 사용하여 빌드되어야 합니다. 프로젝트에서 64비트를 사용하도록 설정하려면 "표준 아키텍처"의 기본 Xcode 빌드 설정을 사용하여 32비트 및 64비트 코드로 단일 이진 파일을 빌드하는 것이 좋습니다." 지원되는 아키텍처를 사용 가능한 ARM64 조합 중 하나로 전환하고(위와 같이) 다시 컴파일하고 다시 제출해야 합니다.
Mac
Important
2018년 1월부터 Mac App Store에 제출된 모든 새 Mac 앱은 64비트 지원해야 합니다. 기존 Mac App Store 앱 및 해당 업데이트는 2018년 6월부터 64비트 지원해야 합니다. Xamarin.Mac 앱을 64비트로 업데이트하는 방법을 설명하는 Apple의 발표 및 가이드를 참조하세요.
대부분의 최신 Mac 컴퓨터는 32비트 및 64비트 애플리케이션을 모두 지원합니다. MacOS 10.6(Snow Leopard)은 32비트 시스템에서 실행된 마지막 운영 체제입니다. 2010년 이후 출시된 대부분의 Mac은 두 시스템을 모두 지원합니다.
iOS와 달리 최신 버전의 macOS에서 도입된 많은 새 프레임워크는 64비트 모드(CloudKit, EventKit, GameController, LocalAuthentication, MediaLibrary, Multipeer커넥트ivity, NotificationCenter, GLKit, SpriteKit, Social 및 MapKit 등)에서만 지원됩니다.
통합 API를 사용하면 개발자가 생성하려는 애플리케이션 종류(32비트 또는 64비트)를 선택할 수 있습니다.
32비트 애플리케이션 은 32비트 및 64비트 Mac 컴퓨터 모두에서 실행되며 주소 공간은 32비트로 제한되며 모든 라이브러리는 32비트입니다.
일반적으로 64비트 모드에서 실행되지 않는 32비트 종속성이 있거나, 더 작은 다운로드를 원하거나, 64비트로 이동할 때 성능상의 이점이 없는 경우 이 모드를 사용합니다.
macOS Mavericks 및 macOS Yosemite에서 사용할 수 있는 많은 프레임워크를 사용할 수 없으므로 이 모드는 제한됩니다.
64비트 애플리케이션은 64비트 Mac 디바이스에서만 실행됩니다.
Mac의 경우 현재 사용 중인 대부분의 Mac이 64비트 모드를 지원하고 Apple에서 제공하는 전체 프레임워크 집합에 액세스할 수 있으므로 이 모드가 기본 설정된 작업 모드입니다.
Xamarin.Mac 앱의 64비트 빌드 사용
Xamarin.Mac을 사용하여 64비트 앱을 빌드하는 방법에 대한 자세한 내용은 Xamarin.Mac 통합 애플리케이션을 64비트로 업데이트 가이드를 참조하세요.