xcode編譯參數
Ⅰ 【Android開發學Flutter】Xcode編譯問題匯總
Xcode編譯經常遇到各種問題,處理起來費時費力,挺打擊學習積極性的。記錄下這些問題,方便自己也幫助後來人。
編譯的時候遇到:
網上有很多解決方法,我是用這個方法解決的:
編譯的時候遇到:
解決辦法:
Project -> User-Defined -> FLUTTER_ROOT 改成本地 flutter SDK路徑
感謝 issues 上的小哥,給你個🚀
在項目目錄下執行 flutter run 可以正常運行到手機,但是在Xcode build 還是有問題。
這時需要手動添加 FLUTTER_ROOT 到 User-Defined :
添加之後:
就可以正常在Xcode build 安裝到手機了。
flutter build ios 後出現:
pod install 後出現:
解決辦法:
這是因為terminal沒有走代理的流量,
使用 git config --global http.proxy "localhost:port" ,設置代理。
port是埠號,根據不同的vpn不一樣,我的埠是10080。
執行 git config --global http.proxy "localhost:10080"
Xcode build 的時候出現:
解決辦法:打開 ios/Podflie 文件:
關於 bitcode 的問題,我檢查了下用到的第三方SDK,應該是網路地圖的問題,我引入了個第三方插件(吐槽下沒官方插件),網路地圖有支持和不支持 bitcode 的兩個SDK,我取消這個插件就沒有報這個錯了,奇怪的是,再次引入同一個插件,也可以正常打包,所以說這個問題還沒有完全解決。
大家可以試下這個處理方法:
TARGETS -> Build Seettings 搜 arm ,試一下把其他刪除,只留下armv7跟armv7s或者只留下armv7
解決辦法:
https://www.jianshu.com/p/201df7e9a52f
我是clean Xcode之後就可以了
解決辦法:
用的是P12證書,改成手動簽名:
Ⅱ 如何加快xcode編譯速度
1. 增加XCode執行的線程數
可以根據自己Mac的性能,更改線程數設置5:defaults write com.apple.Xcode 5
另外也有一個設置可以開啟:defaults write com.apple.dt.Xcode ShowBuildOperationDuration YES
XCode默認使用與CPU核數相同的線程來進行編譯,但由於編譯過程中的IO操作往往比CPU運算要多,因此適當的提升線程數可以在一定程度上加快編譯速度。
2.將Debug Information Format改為DWARF
在工程對應Target的Build Settings中,找到Debug Information Format這一項,將Debug時的DWARF with dSYM file改為DWARF。
這一項設置的是是否將調試信息加入到可執行文件中,改為DWARF後,如果程序崩潰,將無法輸出崩潰位置對應的函數堆棧,但由於Debug模式下可以在XCode中查看調試信息,所以改為DWARF影響並不大。這一項更改完之後,可以大幅提升編譯速度。
比如在目前本人負責的項目中,由於依賴了多個Target,所以需要在每個Target的Debug Information Format設置為DWARF。順便提一下,如果通過Cocoapod引入第三方則Debug Information Format默認就是設置為DWARF的。
SDWebImage通過Cocoapod``Debug Information Format的默認設置
注意:將Debug Information Format改為DWARF之後,會導致在Debug窗口無法查看相關類類型的成員變數的值。當需要查看這些值時,可以將Debug Information Format改回DWARF with dSYM file,clean(必須)之後重新編譯即可。
3.將Build Active Architecture Only改為Yes
在工程對應Target的Build Settings中,找到Build Active Architecture Only這一項,將Debug時的NO改為Yes。
664334-fa1eb995c140ce0f.png
這一項設置的是是否僅編譯當前架構的版本,如果為NO,會編譯所有架構的版本。需要注意的是,此選項在Release模式下必須為NO`,否則發布的ipa在部分設備上將不能運行。這一項更改完之後,可以顯著提高編譯速度。
4.設計編譯優化等級
不要再項目中或者靜態庫中使用-O4,因為這會讓Clang鏈接Link Time Optimizations (LTO)使得編譯更慢,通常使用-O3。
注意:在設置編譯優化之後,XCode斷點和調試信息會不正常,所以一般靜態庫或者其他Target這樣設置。
4.資源整合
4.1 將常用的代碼及文件打包成靜態庫
4.2 添加預編譯文件,把常用的頭文件放到預編譯文件裡面
4.3 能用@class就用@class
Ⅲ iOS自動構建工具 -- xcodebuild
工作項目中的iOS工程都是使用Shell腳本搭配xcodebuild自動構建而成,搭配Jenkins 持續集成(CI)工具,可以很方便的實現項目的構建、部署、自動化。
xcodebuild是蘋果發布自動構建的工具。它在一個Xcode項目下能構建一個或者多個targets,也能在一個workspace或者Xcode項目上構建scheme。
文檔描述如下:
以下是xcodebuild命令的一些參數,其中有一些參數不會執行構建命令如:
-list,-showBuildSettings, -showdestinations
-showsdks, -showTestPlans, -usage, -version.
-destination參數用於根據 destination specifier 指定特定的目標設備
當前,xcodebuild支持以下platforms
當使用 -destination參數指定大於一個目標設備時,xcodebuild 會並行在目標設備上執行測試。這個模式下,xcodebuild 自動同時的選擇設備和模擬器的數目。所有可用的測試在每個目標設備上都會被執行
參數 -exportArchive 指定了xcodebuild根據 -exportOptionPlist參數發布打包到 -archivePath路徑下。proct 可以上傳到到Apple 或者導出到本地。 導出的proct 會被放在 -exportPath路徑下
以下環境變數會影響xcodebuild的執行
XCODE_XCCONFIG_FILE 給一個文件設置一個路徑,編譯時該文件中的編譯設置會被載入,該設置會覆蓋所有其他設置
xcodebuild 退出會返回 sysexit(3) 類型。
成功 EX_OK
參數錯誤 EX_USAGE
輸入文件未找到 EX_NOINPUT
文件無法讀寫 EX_IOERR
命令執行失敗 EX_SOFTWARE
其他場景可能會返回其他錯誤碼
Ⅳ 如何用xcode寫python
使用Xcode寫Python文件方法步驟如下:
1.找到Python位置:(終端中輸入which python)
獲取python的安裝位置,用它來搭建python的編譯環境。
2.在Xcode中創建python程序
打開Xcode,新建項目:Cross-platform->Ohter->External Build System
3.設置Edit Scheme
創建項目---點擊項目圖表---選擇Edit Scheme ---Arguments新建.py文件 ---Option里,選Working Directory---Xcode Project所在的文件夾,就是你的.py文件存放的文件夾,最後選擇確定。
4.編寫代碼並運行