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 位組建
警告
本節基於歷史原因而包含,並協助將較舊的 Xamarin.iOS 專案移至整合 API 並支援 64 位。 所有新的 Xamarin.iOS 專案預設都會使用整合 API,並將目標設為 64 位。
對於已轉換成整合 API 的 Xamarin.iOS 行動應用程式,開發人員必須手動將組建設定更新為以 64 位為目標:
只有 i 電話 5 (或更新版本) 中包含的 A6 處理器才支援 ARMv7s。 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 位架構為目標將會大幅增加應用程式的大小。 不過,這麼做可讓較新的裝置執行優化的程式代碼,同時仍支援較舊的裝置。
重要
如果您在將 iOS 應用程式提交至 iTunes App Store 時收到下列訊息:「 WARNING ITMS-9000:遺漏 64 位支援。從 2015 年 2 月 1 日起,上傳至 App Store 的新 iOS 應用程式必須包含 64 位支援,並使用 xcode 6 或更新版本隨附的 iOS 8 SDK 來建置。若要在專案中啟用 64 位,建議您使用預設的 Xcode 建置設定「標準架構」,以使用 32 位和 64 位程式代碼建置單一二進位檔。 您必須將支持的架構切換至其中一個可用的 ARM64 組合(如上所示)、重新編譯和重新提交。
Mac:
重要
從 2018 年 1 月開始,提交至 Mac App Store 的所有新 Mac 應用程式都必須支援 64 位。 現有的 Mac App Store 應用程式及其更新必須支援從 2018 年 6 月開始的 64 位。 請參閱 Apple的公告 和 指南,說明如何將 Xamarin.Mac 應用程式更新為64位。
大部分的新式 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 位。
如果您有 32 位相依性未在 64 位模式中執行、如果您想要較小的下載,或移動至 64 位時沒有效能優點,您通常會使用此模式。
此模式會限制,因為您無法使用macOS Mavericks和macOS Yosemite 中可用的許多架構。
64 位應用程式 只會在 64 位 Mac 裝置上執行。
針對 Mac,這是慣用的作業模式,因為目前大部分的 Mac 都支援 64 位模式,而且您可以存取 Apple 所提供的一組完整架構。
啟用 Xamarin.Mac 應用程式的 64 位組建
如需使用 Xamarin.Mac 建置 64 位應用程式的相關信息,請參閱 將 Xamarin.Mac 整合應用程式更新為 64 位 指南。