iOS:App從iPhone5s開始支持下載

如圖所示

先說解決方法:將箭頭所指的"YES"改成"NO"即可,當(dāng)然你也可以設(shè)置為<Mutiple Values>,防止發(fā)布的時候忘了設(shè)置。

解決方法

原因如下:

Architectures

這代表,在這個項(xiàng)目里你想要Xcode編譯的目標(biāo)設(shè)備列表。

Valid Architectures

還不是太明確這個設(shè)置的意圖,但是一般來說是不需要更改的,和Architectures一樣就可以。

使用standard architectures (including 64-bit)(armv7,armv7s,arm64)參數(shù),則打的包里面有32位、64位兩份代碼,在iPhone5s(iPhone5s的cpu是64位的:armv6)下,會首選運(yùn)行64位代碼包, 其余的iPhone(其余iPhone都是32位的,iPhone5c也是32位), 只能運(yùn)行32位包,但是包含兩種架構(gòu)的代碼包,只有運(yùn)行在ios6,ios7系統(tǒng)上。

這也就是說,這種打包方式,對手機(jī)幾乎沒啥要求,但是對系統(tǒng)有要求,即ios6以上。
  而使用standard architectures (armv7,armv7s)參數(shù), 則打的包里只有32位代碼, iPhone5s的cpu是64位,但是可以兼容32位代碼,即可以運(yùn)行32位代碼。但是這會降低iPhone5s的性能。 其余的iPhone對32位代碼包更沒問題, 而32位代碼包,對系統(tǒng)也幾乎也沒什么限制。

所以總結(jié)如下:

要發(fā)揮iPhone5s的64位性能,就要包含64位包,那么系統(tǒng)最低要求為ios6。 如果要兼容ios5以及更低的系統(tǒng),只能打32位的包,系統(tǒng)都能通用,但是會喪失iPhone5s的性能。那么怎么解決呢?

Build Active Architecture Only

這個屬性設(shè)置為yes,是為了debug的時候編譯速度更快,它只編譯當(dāng)前的architecture版本;而設(shè)置為no時,會編譯所有的版本。

以下是設(shè)備對應(yīng)的architecture:

armv6:iPhone 2G/3G,iPod 1G/2G
armv7:iPhone 3GS/4/4s,iPod 3G/4G,iPad 1G/2G/3G
armv7s:iPhone5, iPod5
arm64:iPhone5s,ipad air,ipad mini2

編譯出的版本是向下兼容的,比如你設(shè)置此值為yes,用iphone4編譯出來的是armv7版本的,iphone5也可以運(yùn)行,但是armv6的設(shè)備就不能運(yùn)行。
所以,一般debug的時候可以選擇設(shè)置為yes,release的時候要改為no,以適應(yīng)不同設(shè)備。

通過對以上參數(shù)配置的了解,我解決了問題。
  xcode5.1你的程序如果支持了arm64,那么你的所有靜態(tài)庫或者framework都要支持才可以,所以你要重新編譯一遍。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容