1. 程式人生 > >Cordova - 徹底搞定IOS編譯!

Cordova - 徹底搞定IOS編譯!

原文: 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