打開配置界面的操作如下:
1.打開工程,然后選擇工程導(dǎo)航面板上的工程文件
2.在編輯器面板上選擇--TARGETS--往弓,再選擇--Build Settings--選項卡渴杆,在搜索條中搜索--Architectures--
1.Architectures配置
指定工程被編譯成可支持哪些指令集類型,而支持的指令集越多,就會編譯出包含多個指令集代碼的數(shù)據(jù)包,對應(yīng)生成二進制包就越大,也就是ipa包會變大
2.Base SDK配置
Base SDK-->指的是當(dāng)前編譯所用的SDK 版本
Base SDK設(shè)置會引導(dǎo)編譯器使用該版本的SDK編譯和構(gòu)建應(yīng)用,也就是說主儡,它會直接控制應(yīng)用使用哪些API. 默認(rèn)情況下,Xcode中創(chuàng)建的新工程總是使用最新版本的SDK,而蘋果會處理API的廢棄,如下圖:
3.Build Active Architectures Only配置
該編譯項用于設(shè)置是否只編譯當(dāng)前使用的設(shè)備對應(yīng)的arm指令集
1.設(shè)置成YES時,你連上一個armv7指令集的設(shè)備,就算你的Valid Architectures和Architectures都設(shè)置成armv7/armv7s/arm64,還是依然只會生成一個armv7指令集的二進制包.(該選項起作用的前提是你的Xcode必須成功連接了調(diào)試設(shè)備! 如果你沒有任何活躍設(shè)備,即Xcode沒有成功連接調(diào)試設(shè)備,就算該設(shè)置項設(shè)置成YES依然還會編譯Valid Architectures和Architectures指定的二進制包.)
2.通常情況下,該編譯選項在Debug模式都設(shè)成YES,Release模式都設(shè)成NO
[圖片上傳中...(Snip20180523_16.png-dab853-1527045783606-0)]
4.Valid Architectures配置
指定可能支持的指令集, 該列表和Architectures**列表的交集,將是Xcode最終生成二進制包所支持的指令集 **(因此這個不能為空)
5.Supported Platform 配置
指定支持的設(shè)備平臺
概念
1.ARM
ARM處理器,特點是體積小乡小、低功耗奸柬、低成本酿矢、高性能, 所以幾乎所有手機處理器都基于ARM,在嵌入式系統(tǒng)中應(yīng)用廣泛
2.ARM處理器指令集
armv6|armv7|armv7s|arm64都是ARM處理器的指令集,這些指令集都是向下兼容的,例如armv7指令集兼容armv6,只是使用armv6的時候無法發(fā)揮出其性能,無法使用armv7的新特性,從而會導(dǎo)致程序執(zhí)行效率沒那么高樱衷。
i386|x86_64 是Mac處理器的指令集,i386是針對intel通用微處理器32架構(gòu)的. x86_64是針對x86架構(gòu)的64位處理器. 所以當(dāng)使用iOS模擬器的時候會遇到i386|x86_64, ios模擬器沒有arm指令集
3.目前iOS的ARM處理器指令集及其支持的設(shè)備:
arm64: iPhone5S以上| iPad Air| iPad mini2(iPad mini with Retina Display)
armv7s: iPhone5|iPhone5C|iPad4(iPad with Retina Display)
armv7: iPhone3GS|iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4
armv6: iPhone, iPhone2, iPhone3G, 第一代创译、第二代 iPod Touch(一般不需要去支持)
5.Mac處理器的指令集:
i386: iPhone4s~5
x86_64: iPhone5s~
詳解:
i386是針對intel通用微處理器32位處理器
x86_64是針對x86架構(gòu)的64位處理器
模擬器32位處理器測試需要i386架構(gòu)膀曾,
模擬器64位處理器測試需要x86_64架構(gòu)县爬,
真機32位處理器需要armv7,或者armv7s架構(gòu),
真機64位處理器需要arm64架構(gòu)添谊。