昨天居然為了打包花了一整天時間。由于遇到了不少坑而且編譯慢。在此特地整理一下。
首先創(chuàng)建bot。創(chuàng)建bot有很多教程,官方文檔也寫的很清楚,這里就不詳細說了。關鍵步驟在configure bot triggers
這里。添加一個Pre-integration script
,編譯前的腳本。bot會先checkout代碼到臨時文件夾,然后執(zhí)行編譯前的腳本,編譯,然后執(zhí)行編譯后的腳本。
Pre-integration script
那當然要執(zhí)行pod install
咯。好,繼續(xù),完成,等待integration執(zhí)行。很快,過程走完了,得到一個大紅叉。
看來沒有這么簡單。按下command+8找到bot標簽,展開,點擊那個失敗的構建。
點擊主界面上面的logs。
下方左側有個下拉菜單,可以看到Pre-integration triggers
里面有我們創(chuàng)建的腳本名稱,選擇這個看看log信息。不要直接看summary,那里除了告訴你腳本返回-1以外什么信息都沒有,也別費力去網上搜了,搜不到什么。
一開始會發(fā)現找不到pod指令,看來腳本不知道去哪找pod。我們在server的命令行中執(zhí)行which pod
,打印出來的路徑就是pod的路徑。我們直接替換好了/usr/local/bin/pod install
,別照抄這句,找到你自己的路徑。
再次編譯,繼續(xù)報錯。
這次錯誤很明確,當前目錄沒有Podfile。好,我們改下腳本。在pod install
之前執(zhí)行pwd
和ls
確保我們來到了正確的工程目錄。多條命令的時候不要忘了每個指令末尾加上分號“;”確保順序執(zhí)行。好,再次執(zhí)行構建。
肯定還是錯誤。我們重新看下log。前2行打印出來了當前路徑和當前路徑下的文件。果然,執(zhí)行腳本時,并沒有進到工程目錄。我們在pod install
前加上cd [project]
進入你的工程目錄。
然后繼續(xù)報錯,invalid byte sequence in US-ASCII
。提示信息倒是很完善,直接給了我一個URL,把搜索關鍵字也拼好了。這個URL直接指向github的issues提問區(qū)。解決方案在這里。在腳本最開始加上這幾句。
export LANG=en_US.UTF-8 export LANGUAGE=en_US.UTF-8 export LC_ALL=en_US.UTF-8
接下來的錯誤有意思了,它跟我說找不到scheme。找了一些論壇,找到了答案。如圖操作。
改了scheme最好重新建一個bot。然后在server的命令行執(zhí)行xcodebuild -workspace MyProject.xcworkspace -list
確認一下臨時工程文件夾里面是不是能找到scheme了。
最后,構建成功。