32/64 비트 플랫폼 고려 사항32/64-bit platform considerations

IOS 및 macOS는 이전에 32 및 64 비트 앱을 모두 지원 했지만 Apple은 점점 더 이상 사용 되지 않는 32 비트 지원을 제공 합니다.While iOS and macOS have historically supported both 32 and 64-bit apps, Apple has gradually deprecated 32-bit support.

IOS 11부터 32 비트 앱은 더 이상 시작 되지 않으며, 앱 스토어에 대 한 모든 전송은 64 비트를 지원 해야합니다.As of iOS 11, 32-bit apps will no longer launch, and all submissions to the App Store must support 64-bit.

2018 년 1 월부터 Mac 앱 스토어에 제출 된 새 앱은 64 비트를 지원 해야하 고, 기존 앱은 6 월 2018 일에 업데이트 되어야 합니다.Starting in January 2018, new apps submitted to the Mac App Store must support 64-bit, and existing apps must be updated by June 2018.

Xamarin의 Classic API (XamMac.dllmonotouch.dll)는 32 비트 응용 프로그램만 지원 합니다.Xamarin's Classic API (XamMac.dll and monotouch.dll) supported only 32-bit applications. 그러나 새 Xamarin.ios 및 Xamarin.ios 응용 프로그램은 기본적으로 Unified API (Xamarin.iOSXamarin.Mac)를 사용 하므로 필요에 따라 32 및 64 비트를 모두 대상으로 지정할 수 있습니다.However, new Xamarin.iOS and Xamarin.Mac applications use the Unified API (Xamarin.iOS and Xamarin.Mac) by default, and can therefore target both 32 and 64-bit, as necessary.

iOSiOS

Xamarin.ios 앱의 64 비트 빌드 사용Enabling 64-bit builds of Xamarin.iOS apps

경고

이 섹션은 과거의 이유로 포함 되었으며 이전 Xamarin.ios 프로젝트를 Unified API로 이동 하 고 64 비트를 지원 합니다.This section is included for historic reasons, and to help move older Xamarin.iOS projects to the Unified API and support 64-bit. 모든 새 Xamarin.ios 프로젝트는 기본적으로 Unified API 및 대상 64 비트를 사용 합니다.All new Xamarin.iOS projects will use the Unified API and target 64-bit by default.

Unified API로 변환 된 Xamarin.ios 모바일 응용 프로그램의 경우 개발자는 빌드 설정을 64 비트 대상으로 수동으로 업데이트 해야 합니다.For Xamarin.iOS mobile applications that have been converted to the Unified API, developers must manually update the build settings to target 64-bit:

  1. Solution Pad에서 응용 프로그램의 프로젝트를 두 번 클릭 하 여 프로젝트 옵션 창을 엽니다.In the Solution Pad, double-click the app's project to open the Project Options window.

  2. IOS 빌드를 선택 합니다.Select iOS Build.

  3. IPhone 시뮬레이터의 경우 지원 되는 아키텍처 드롭다운에서 x86_64 또는 i386 + x86_64를 선택 합니다.For the iPhone Simulator, in the Supported architectures dropdown, select either x86_64 or i386 + x86_64:

    지원 되는 아키텍처를 x86_64 또는 i386 + x86_64로 설정Setting Supported architectures to x86_64 or i386 + x86_64

  4. 물리적 장치의 경우 사용 가능한 ARM64 조합 중 하나를 선택 합니다.For physical devices, select one of the available ARM64 combinations:

    지원 되는 아키텍처를 ARM64 조합 중 하나로 설정Setting Supported architectures to one of the ARM64 combinations

  5. 확인을 클릭합니다.Click OK.

  6. 클린 빌드를 수행 합니다.Perform a clean build.

Armv7s 용 thumb-2는 iPhone 5 이상에 포함 된 A6 프로세서 에서만 지원 됩니다.ARMv7s is supported only by the A6 processor included in the iPhone 5 (or greater). ARMv7 코드는 ARMv6 보다 빠르고 작고, iPhone 3GS 이상 에서만 작동 하며, iPad 또는 최소 iOS 버전 5.0을 대상으로 하는 경우 Apple에서 필요 합니다.ARMv7 code is faster and smaller than the ARMv6, only works with the iPhone 3GS and later, and is required by Apple when targeting the iPad or a minimum iOS version of 5.0. ARMv6는 모든 장치에서 작동 하지만 Xcode 4.5 이상 버전으로 제공 된 컴파일러에서는 더 이상 지원 되지 않습니다.ARMv6 works on all devices but is no longer supported by the compiler shipped with Xcode 4.5 and later.

ARM64은 iPhone 6 또는 기타 64 비트 장치에서 iOS 8을 지원 하기 위해 필요 하며, iTunes 앱 스토어에서 새로운 응용 프로그램을 제출 하거나 업데이트를 업데이트할 때 Apple에 필요 합니다.ARM64 is required to support iOS 8 on iPhone 6 or other 64-bit devices and will be required by Apple when submitting new or updating exiting applications in the iTunes App Store.

다양 한 iOS 장치의 기능을 포괄적으로 확인 하려면 Apple의 장치 호환성 문서를 참조 하세요.For a comprehensive look at the capabilities of various iOS devices, check out Apple's Device Compatibility document.

64 비트 및 이진 크기 늘리기64-bit and binary size increases

Apple이 32 비트에서 64 비트로 전환 되는 동안 iOS 앱은 32 비트 및 64 비트 하드웨어 둘 다에서 실행 되어야 합니다.During Apple's transition from 32-bit to 64-bit, iOS apps will need to run on both 32-bit and 64-bit hardware. 이로 인해 Xamarin의 Unified API를 통해 개발자는 두 가지를 모두 대상으로 지정할 수 있습니다.Because of this, Xamarin's Unified API allows developers to target both.

32 비트와 64 비트 아키텍처를 모두 대상으로 지정 하면 응용 프로그램 크기가 크게 증가 합니다.Targeting both 32-bit and 64-bit architectures will significantly increase the size of an application. 그러나 이렇게 하면 이전 장치를 계속 지원 하면서 새 장치에서 최적화 된 코드를 실행할 수 있습니다.However, doing so will allow newer devices to run optimized code while still supporting older devices.

중요

ITunes 앱 스토어에 iOS 응용 프로그램을 제출할 때 다음과 같은 메시지가 표시 되 면 "경고 ITMS-9000:64 비트 지원이 없습니다. 2015 년 2 월 1 일부 터 앱 스토어에 업로드 된 새 iOS 앱은 64 비트 지원을 포함 해야 하며, Xcode 6 이상에 포함 된 iOS 8 SDK를 사용 하 여 빌드해야 합니다. 프로젝트에서 64 비트를 사용 하도록 설정 하려면 "표준 아키텍처"의 기본 Xcode 빌드 설정을 사용 하 여 32 비트 및 64 비트 코드를 모두 사용 하 여 단일 이진 파일을 작성 하는 것이 좋습니다.If you receive the following message when submitting an iOS application to the iTunes App Store, "WARNING ITMS-9000: Missing 64-bit support. Starting February 1, 2015, new iOS apps uploaded to the App Store must include 64-bit support and be built with the iOS 8 SDK, included in Xcode 6 or later. To enable 64-bit in your project, we recommend using the default Xcode build setting of “Standard architectures” to build a single binary with both 32-bit and 64-bit code." 지원 되는 아키텍처를 사용 가능한 ARM64 조합 (위와 같이) 중 하나로 전환 하 고 다시 컴파일한 후 다시 제출 해야 합니다.You need to switch the supported architectures to one of the available ARM64 combination (as shown above), recompile and resubmit.

MacMac

중요

2018 년 1 월부터 Mac 앱 스토어에 제출 된 모든 새 Mac 앱은 64 비트를 지원 해야 합니다.Starting in January 2018, all new Mac apps submitted to the Mac App Store must support 64-bit. 기존 Mac 앱 스토어 앱 및 해당 업데이트는 64 년 6 월 2018에 시작 하는 비트를 지원 해야 합니다.Existing Mac App Store apps and their updates must support 64-bit starting in June 2018. Apple의 공지xamarin.ios 앱을 64 비트로 업데이트 하는 방법을 설명 하는 가이드를 참조 하세요.See Apple's announcment and a guide that describes how to update your Xamarin.Mac apps to 64-bit.

최신 Mac 컴퓨터는 32 비트 및 64 비트 응용 프로그램을 모두 지원 합니다.Most modern Mac computers support both 32-bit and 64-bit applications. MacOS 10.6 (눈 Leopard)는 32 비트 시스템에서 실행 되는 마지막 운영 체제 였습니다.MacOS 10.6 (Snow Leopard) was the last operating system to run on 32-bit systems. 2010 이후 출시 된 대부분의 Mac은 두 시스템을 모두 지원 합니다.Most Macs released since 2010 support both systems.

IOS와 달리 최신 버전의 macOS에 도입 된 새로운 프레임 워크 중 상당수는 64 비트 모드 에서만 지원 됩니다 (CloudKit, EventKit, GameController, LocalAuthentication, MediaLibrary, MultipeerConnectivity, NotificationCenter, 글 키트, SpriteKit, 소셜, 및 MapKit).Unlike iOS, many of the new frameworks introduced in recent versions of macOS are only supported in 64-bit mode (CloudKit, EventKit, GameController, LocalAuthentication, MediaLibrary, MultipeerConnectivity, NotificationCenter, GLKit, SpriteKit, Social, and MapKit, among others).

개발자는 Unified API을 사용 하 여 생성 하려는 응용 프로그램의 종류 (32 비트 또는 64 비트)를 선택할 수 있습니다.The Unified API allow developers to choose what kind of applications they want to produce: 32-bit or 64-bit.

32 비트 응용 프로그램 은 32 비트 및 64 비트 Mac 컴퓨터 모두에서 실행 되 고, 주소 공간은 32 비트로 제한 되며, 모든 라이브러리가 32 비트가 되어야 합니다.32-bit applications will run on both 32-bit and 64-bit Mac computers, have an address space limited to 32 bits, and require that all libraries are 32 bits.

일반적으로이 모드는 64 비트 모드로 실행 되지 않는 32 비트 종속성이 있는 경우, 더 작은 다운로드를 사용 하거나 64 비트로 이동할 때 성능상의 이점이 없는 경우에 사용 합니다.You will typically use this mode if you have 32-bit dependencies that do not run in 64-bit mode, if you want to have a smaller download, or if there are no performance benefits in moving to 64-bit.

이 모드는 macOS Mavericks 및 macOS Yosemite에서 사용할 수 있는 많은 프레임 워크를 사용할 수 없기 때문에 제한 됩니다.This mode is limiting as you wont be able to use many frameworks available in macOS Mavericks and macOS Yosemite.

64 비트 응용 프로그램 은 64 비트 Mac 장치 에서만 실행 됩니다.64-bit applications will only run on 64-bit Mac devices.

Mac의 경우 현재 사용 중인 대부분의 Mac에서 64 비트 모드를 지원 하 고 Apple에서 제공 하는 전체 프레임 워크 집합에 액세스할 수 있기 때문에이 작업은 기본 설정 모드입니다.For Mac, this is the preferred mode of operation as most Macs in use today support 64-bit mode, and you have access to the complete set of frameworks provided by Apple.

Xamarin.ios 앱의 64 비트 빌드 사용Enabling 64-bit builds of Xamarin.Mac apps

Xamarin.ios를 사용 하 여 64 비트 앱을 빌드하는 방법에 대 한 자세한 내용은 Xamarin.ios 통합 응용 프로그램을 64 비트 가이드로 업데이트 를 참조 하세요.For information about building a 64-bit app using Xamarin.Mac, please see the Updating Xamarin.Mac Unified applications to 64-bit guide.