Xcode里面有很多很神奇的編譯設置叠纷,特別是Xcode7以后又有很多的變化噩凹,這里做一個歸納
- Enable Testablity
這個選項的意思是儒飒,當你需要用到UI測試的時候者蠕,有一個關鍵字@testable
,用于自動引入要測試的類佩番,譬如
@testable import TestViewController
建議在debug狀態(tài)下開啟該選項
參考鏈接
UI Testing in Xcode
How to Implement UI Testing in an Existing iOS App
Xcode:為你的項目集成單元測試(unit tests)時記得避開這些坑
- Weak References in Manual Retain Release
如果你升級了xcode7.3以后的版本众旗,有可能會在編譯時報錯,主要針對的是MRC文件混編的場景趟畏。在我們的項目中也有遇到類似的問題贡歧,譬如如下代碼
+ (id)getNewValueFromObject:(__weak id)object oldValue:(__weak id)oldValue property:(__weak MJProperty *)property;
在MRC文件混編的時候會出錯,解決辦法是將這個編譯項設置為YES就好了赋秀。簡單來說就是在MRC下也能夠支持__weak
的runtime特性了利朵。
參考鏈接
xcode7.3編譯問題
<a >iOS9.3 __weak reference</a>
<a >Xcode 7.3 cannot create __weak reference in file using manual reference counting</a>
Xcode 7.3b4, non-arc, cannot create __weak reference
Xcode 7.3 Cannot create __weak reference in file using manual reference counting
- Enable On Demand Resources
這是IOS9的新特性,跟App減少包體積有關猎莲。不過實際情況不太樂觀绍弟,簡單來說他的實現(xiàn)方式是,App先標記好哪些圖片是需要按需加載的著洼,然后提交全量包到AppStore樟遣。當用戶下載App的時候,將不會下載標記的圖片身笤,等到App需要后加載資源的時候再下載豹悬。資源文件的托管是在AppStore服務器上。所以如果你想要使用該技術的話液荸,要先做以下步驟
- 將這個設置項設置為YES
- 標記資源
- 使用指定的api按照tagid下載資源
參考鏈接
關于iOS9的APP瘦身
按需加載資源開發(fā)指南
On-Demand Resources Guide
Deployment Postprocessing
對ipa進行包體積優(yōu)化的時候瞻佛,一般需要去除無用的符號信息,但是根據(jù)蘋果的文檔莹弊,要使得Strip Style生效涤久,還需要對這個編譯選項設置為YES才有用
參考鏈接
Symbolification: Shipping Symbols
Build Setting Reference
iOS可執(zhí)行文件瘦身方法Defines Module
當需要OC和Swift混編的時候,需要將這個選項設置為YES
在一個項目中同時使用Swift和Objective-C代碼混合編程的方法
Importing Code from Within the Same Framework TargetForce Package Info Generation
Inline Methods Hidden
Symbols Hidden By Default
Enable Modules(C and Objective-C)
Enable Strict Checking of objc_msgSend Calls
Compress PNG Files
GCC_THUMB_SUPPORT
Skip Install