2014-09-23 23 views
2

我們之前爲我們的通用iOS應用程序(這意味着我們同時支持iPhone和iPad)支持iOS 6 & 7。現在,隨着iOS 8的發佈,我們必須支持iOS 6,iOS 7 & iOS 8.此外,我們還必須擴展目標設備列表以支持iPhone 6和iPhone 6 Plus。我應該在「體系結構」部分的Xcode構建設置中包含什麼

此外,我們計劃很快升級到Xcode 6。因爲Apple可以隨時授權使用Xcode 6來將應用程序提交到應用程序商店。

記住所有上述要點,我很困惑Xcode構建設置中應該是我的架構設置。主要有Xcode體系結構設置下的3個重要項目。請看下面的截圖。

enter image description here

我已經強調了三個重要的參數。我想知道我應該爲這些參數分配什麼值以支持上述所有內容。任何幫助將不勝感激。我對此有點困惑。

另外,我想知道如果我需要改變任何東西,以遷移到Xcode的6和iOS 8

回答

2

Architectures,你會被罰款與armv7, armv7s, arm64, i386,其中i386是模擬器。剩下的可以保留默認值。

UPDATE:不要求以支持構建適用於iOS模擬器提桌面架構(i386x86_64)。鑑於Simulator僅通過包含各自的ARM架構而得到支持。因此,Architectures沒有問題,只需填入armv7 armv7s arm64即可。通過觀察,自Xcode 6.3以來,如果設置包含任何桌面架構,甚至可能會導致構建失敗。

Valid architectures可以爲每個目標單獨設置,Xcode將使全局Architectures設置與此相交。如果您不感興趣,請不要觸動它,Xcode將自行處理,而且不會出現任何問題。

如果您的代碼未準備好64位,請從Architectures中刪除arm64。應用程序仍然可以在iOS 8和所有最新的64位設備上運行。

至於Build Active Architecture Only,我建議將它設置爲No。此屬性影響Xcode決定構建的內容,例如基於當前連接的設備。但是可能會出現問題:您可能會因爲一些目標針對不同的體系結構而最終結束,從而導致鏈接錯誤。儘管如此,如果您想使用該功能的優點,請將其設置爲Yes,僅用於Debug或某種僅用於測試的配置,而不是最終版本。 Xcode將只爲您在Architectures x Valid中設置的所有體系結構之一構建所有二進制文件。

+0

我想要一個像這樣的解釋性答案。謝謝!! – 2014-09-27 14:14:13

+0

這是不正確的。你應該只包括手臂架構。 Xcode會將32位arm解釋爲sim卡的i386,並將sim64的arm64移植到x86_64。 – 2014-09-28 06:18:27

+0

證明它。我正是用我寫的。 – lef 2014-09-28 19:48:13

0

如果您不是您的目標架構的專家,請移除所有架構並添加armv7和armv7s。另外,如果您只爲IOS構建,請檢查您的目標,以便XCode不構建其他操作系統(可能需要其他體系結構)。

相關問題