Cordova - 徹底搞定IOS編譯!


操作系統:OSX10.14

XCode:10.1

Cordova:8.1.2

假設已經配置好了Cordova開發環境,Apple ID你也有,XCode也可以正常工作了,那么就可以繼續看這篇文章了!

如果你沒有看我這篇文章,那么你有可能會順利編譯你的Cordova工程,但是,我覺得你很可能正在解決遇到的麻煩,而且讓你焦頭爛額的麻煩,你都不知道錯誤究竟是怎么發生的!

一,解決XCode編譯Cordova工程問題:

1,保證蘋果開發證書正常可用。這就不多說了,有很多文章介紹,打開工程之后,如果沒有加入蘋果ID,則加入,加入后,下載全部證書,隨后在工程里面設置“Automatically manage signing”,隨后選對“team”,XCode就把這件事搞定了。但是下面的操作同樣重要,如果不按照下面做,我相信你肯定編譯不過去!

2,修改編譯選項:這對於Cordova工程編譯,非常重要,如果不修改,我敢保證你編譯不過去,而且錯誤五花八門,你即使上網搜索解決方法,也是驢唇不對馬嘴!

A,打開選項界面:點擊XCode菜單的“File” -> "Workspace settings",如果你打開的是工程,那應該是"Project settings"。

B,修改編譯選項:把“Build System”修改成“Legacy Build System”。

從字面上理解,“Legacy Build System”是舊的或傳統的編譯系統,確實是這樣!在XCode9開始,蘋果公司引入新的編譯系統,把先前的編譯系統叫做“Legacy Build System”。Crodova工程,那些基礎工程,應該是老版本的XCode開發的,如果不把編譯系統調整成“Legacy Build System”,我覺得你很難編譯通過,而且出現的那些錯誤會莫名其妙,你根本無法解決,因為搜索到的答案都不對,真正造成錯誤的原因是這個編譯系統,不是別的!!

這是我先前遇到問題:https://www.cnblogs.com/sunylat/p/9936145.html

經過上面設置,我想你現在可以編譯Cordova工程了,你會很高興,新建一個Cordova工程,然后用XCode10編譯,假設你在這之前已經順利連接好了你的IOS真機,那么你會很順利看到在IOS真機里面運行的你剛剛建立的Cordova程序!但是你不會止步於此啊,你得寫自己的代碼啊,於是,你就隨便修改了一個地方,然后又編譯了一下,也順利安裝到了IOS真機里了,但是,可但是,神奇的一幕會讓你目瞪口呆!!天哪,我剛剛修改的程序居然沒有變化,還是上次的程序!你可能覺得自己哪里做錯了,於是又十分認真地修改了一次,隨后又順利編譯、安裝到真機里了,這次會讓你更驚訝,你已經百分百確定,自己沒有犯錯,真的修改了程序了,但是在IOS真機里面運行的,依然是你最初的,第一次安裝到真機里的Cordova程序,沒有任何變化!!!

先不管上面問題,按照我下面的做!! 

二,配置Cordova的IOS開發環境:打開shell,依次執行下面命令。

1,

 xcode-select --install

2,

sudo npm install -g ios-sim

3,

sudo npm install -g ios-deploy --unsafe-perm=true --allow-root

關於命令3,可能不同運行OSX的設備會有差異,由於我是在虛擬機里安裝的OSX10.14,所以只有執行此命令才可以。

到此,已經配置好了在OSX里面,Cordova編譯IOS需要的環境了,那么是不是上面XCode成功編譯,但是無法把修改的程序安裝到真機問題解決了呢?NO!!

我現在是在真機上做開發測試,是debug版本程序,對應證書也是,所以使用的命令也都是debug版本對應的,如果你將來要發布,修改成發布版本的命令,把命令中的debug,替換成release,應該就可以!

三,解決XCode順利編譯,但是無法把修改程序安裝到真機問題:

我想告訴你一個事實,XCode是可以順利編譯Cordova工程,但是,那不是管理Cordova里面我們開發的程序!!如果想要讓自己開發的程序,能夠通過XCode編譯、發布到真機,那么必須首先用Cordova命令編譯我們的程序!!

1,執行Cordova編譯命令,編譯我們的程序。

cordova build ios --debug --device

2,安裝我們編譯好的程序:

A,直接使用XCode安裝。這種方式比較簡單,連接好了真機之后,點擊運行按鈕就可以了。

B,用 ios-deploy 安裝。

找到你編譯程序的目錄,在shell里面進入那個目錄,隨后執行安裝命令。我的工程名是“test”,生成的安裝文件目錄是“/Users/sunylat/test/platforms/ios/build/device”。那么我執行下面兩條命令,就順利把我的程序安裝到了正在連接的真機里了。

cd /Users/sunylat/test/platforms/ios/build/device

ios-deploy --justlaunch --debug --bundle test.ipa

 參考:

http://cordova.axuer.com/docs/zh-cn/latest/guide/platforms/ios/index.html

https://github.com/ios-control/ios-deploy#readme

http://cordova.axuer.com/docs/zh-cn/latest/reference/cordova-cli/index.html#cordova-build-command


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM