Cordova - 完全搞定IOS編譯!

操做系統:OSX10.14html

XCode:10.1ios

Cordova:8.1.2git

假設已經配置好了Cordova開發環境,Apple ID你也有,XCode也能夠正常工做了,那麼就能夠繼續看這篇文章了!github

若是你沒有看我這篇文章,那麼你有可能會順利編譯你的Cordova工程,可是,我以爲你極可能正在解決遇到的麻煩,並且讓你焦頭爛額的麻煩,你都不知道錯誤到底是怎麼發生的!shell

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

1,保證蘋果開發證書正常可用。這就很少說了,有不少文章介紹,打開工程以後,若是沒有加入蘋果ID,則加入,加入後,下載所有證書,隨後在工程裏面設置「Automatically manage signing」,隨後選對「team」,XCode就把這件事搞定了。可是下面的操做一樣重要,若是不按照下面作,我相信你確定編譯不過去!xcode

2,修改編譯選項:這對於Cordova工程編譯,很是重要,若是不修改,我敢保證你編譯不過去,並且錯誤五花八門,你即便上網搜索解決方法,也是驢脣不對馬嘴!ide

A,打開選項界面:點擊XCode菜單的「File」 -> "Workspace settings",若是你打開的是工程,那應該是"Project settings"。測試

B,修改編譯選項:把「Build System」修改爲「Legacy Build System」。ui

從字面上理解,「Legacy Build System」是舊的或傳統的編譯系統,確實是這樣!在XCode9開始,蘋果公司引入新的編譯系統,把先前的編譯系統叫作「Legacy Build System」。Crodova工程,那些基礎工程,應該是老版本的XCode開發的,若是不把編譯系統調整成「Legacy Build System」,我以爲你很難編譯經過,並且出現的那些錯誤會莫名其妙,你根本沒法解決,由於搜索到的答案都不對,真正形成錯誤的緣由是這個編譯系統,不是別的!!

這是我先前遇到問題:http://www.javashuo.com/article/p-qbonibfx-mv.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

相關文章
相關標籤/搜索