Architectures屬性設定

2021-06-22 03:33:40 字數 1427 閱讀 4140

architectures

這代表,在這個專案裡你想要xcode編譯的目標裝置列表。

valid architectures

還不是太明確這個設定的意圖,但是一般來說是不需要更改的,和architectures一樣就可以。

在xcode5.1裡的valid architectures 設定裡,預設為

standard architectures(armv7,armv7s,arm64),如果你想改的話,自己在other中更改。

原因解釋如下:

使用standard architectures (including 64-bit)(armv7,armv7s,arm64)引數,則打的包裡面有32位、64位兩份**,

在iphone5s(

iphone5s的cpu是64位的

)下,會首選執行64位**包, 

其餘的iphone(

其餘iphone都是32位的,iphone5c也是32位

), 只能執行32位包,

但是包含兩種架構的**包,只有執行在ios6,ios7系統上。 

這也就是說,這種打包方式,對手機幾乎沒啥要求,但是對系統有要求,即ios6以上。

而使用standard architectures (armv7,armv7s)引數, 則打的包裡只有32位**, iphone5s的cpu是64位,但是可以相容32位**,即可以執行32位**。但是這會降低iphone5s的效能。 其餘的iphone對32位**包更沒問題, 而32位**包,對系統也幾乎也沒什麼限制。

所以總結如下:

要發揮iphone5s的64位效能,就要包含64位包,那麼系統最低要求為ios6。 如果要相容ios5以及更低的系統,只能打32位的包,系統都能通用,但是會喪失iphone5s的效能。

build active architecture only

這個屬性設定為yes,是為了debug的時候編譯速度更快,它只編譯當前的architecture版本。

而設定為no時,會編譯所有的版本。

這個是裝置對應的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

編譯出的版本是向下相容的,比如你設定此值為yes,用iphone4編譯出來的是armv7版本的,iphone5也可以執行,但是armv6的裝置就不能執行。

所以,一般debug的時候可以選擇設定為yes,release的時候要改為no,以適應不同裝置。

通過對以上引數配置的了解,我解決了問題。

xcode5.1你的程式如果支援了arm64,那麼你的所有靜態庫或者framework都要支援才可以,所以你要重新編譯一遍

關於Architectures的設定

xcode5時代如何設定architectures和valid architectures 目前ios的指令集有以下幾種 1,armv6,支援的機器iphone,iphone2,iphone3g及對應的itouch 2,armv7,支援的機器iphone4,iphone4s 3,armv7s,支援的...

CSS屬性 背景屬性 or 浮動屬性

background color red background image url background repeat no repeat repeat repeat x repeat y background position 水平位置 垂直位置 可以給負值 background attachme...

復合屬性 列表屬性 文字屬性

background 復合屬性 url 位址 本地位址,網路位址 repeat 預設值 水平和垂直都鋪滿 repeat x 只鋪滿水平方向 左右 repeat y 只鋪滿垂直方向 上下 no repeat 不平鋪 放不滿,留出空白 background size 100 100 背景縮放 boxba...