iOS開發:Xcode報錯問題,ios開發xcode報
Xcode報錯
verify final result code for completed build operationBuild operation failed without specifying any errors. Inpidual build tasks may have failed for unknown reasons.One possible cause is if there are too many (possibly zombie) processes; in this case, rebooting may fix the problem.Some inpidual build task failures (up to 12) may be listed below.
1.cocoapods版本導致
檢查發現本地mac系統上cocoapods版本是最新的1.4.0
//刪除1.4.0包sudo gem uninstall cocoapods -v 1.4.0//然後安裝指定版本的Cocoapodssudo gem install cocoapods -v 1.3.1//檢查版本pod --version
然後重新拉代碼,pod update
編譯運行OK!
2.Perform Single-Object Prelink設定導致
categories in static library
xcode編譯的時候不會把靜態庫裡面全部的類都載入進去,它會找主工程用到了哪些符號,然後把用到的載入進去。但是這個看起來很美的機制有個大坑,就是oc的分類是不產生符號的,也就是說,比如你在工程用了一個分類的方法[NSString categoryMethod], 編譯器只會認為需要用到NSString, 而不知道categoryMethod是靜態庫裡一個分類的方法,所以不會去載入靜態庫的分類。
目前的解決方案就是給編譯器一個標誌,告訴編譯器整個靜態庫都要載入:
1).-all-load. 把所有靜態庫裡的所有.o都載入
2).-force_load. 可以指定載入哪個靜態庫的所有.o
3).-ObjC. 把所有OC代碼都載入。
4).Perform Single-Object Prelink.
前3個編譯選項都是設在主工程的,這個選項是設定在靜態庫的。表示把這個子工程先行編譯成一個.o檔案,當整個靜態庫有一個符號被引用就把整個.o檔案打包進去。
可能是Perform Single-Object Prelink的實現有bug,檔案多了就掛了。