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...