已有iOS項目集成Cordova(PhoneGap)

1.安裝PhoneGap

直接下載的安裝包似乎不能使用命令行操作?我當(dāng)時反正是沒成功
首先進(jìn)入 https://nodejs.org/en/ 下載nodejs,這里有一個大眾版本和最新版本,下載大眾版本就行。
安裝完畢以后打開終端
npm install -g phonegap@latest
等待安裝完成

2.新建PhoneGap項目

安裝完畢后,cd到你想創(chuàng)建的目錄,比如手動創(chuàng)建一個PhoneGapDemo文件夾,cd進(jìn)去
phonegap create Demo com.demo.app Demo
如果你安裝的是Cordova就將命令中的phonegap換成cordova,
上述命令,第一個Demo表示這個程序的名字,同時會創(chuàng)建一個Demo目錄保存程序的代碼,第二個參數(shù)com.demo.app表示代碼中包的名字,第三個參數(shù)Demo表示創(chuàng)建的應(yīng)用的名字。
此時的目錄是.../PhoneGapDeme/Demo

Paste_Image.png

繼續(xù),cd進(jìn)Demo文件夾后
phonegap platform add ios
完成以后,目錄變?yōu)?br>
Paste_Image.png
到此,新建PhoneGap項目完成

3.已有項目集成

假如我現(xiàn)在有個項目,叫WeChat。

  1. 打開WeChat文件目錄
  2. 打開剛才新建的Demo,將Demo下的config.xml拷貝過去
  3. 進(jìn)入platforms/ios,將cordova和www文件夾拷貝過去
  4. 將cordovaLib文件夾下全部內(nèi)容拷貝過去
  5. 打開WeChat項目,Add Files添加CordovaLib.xcodeproj 和 config.xml
  6. 此時的結(jié)構(gòu)


    Paste_Image.png
  7. 選擇主項目,進(jìn)入Build Phases,在Target Dependencies 和Link Binary 中添加Cordova


    Paste_Image.png
  8. buiild stetings 的 otherLiner flags 添加 -all_load-Objc
    Paste_Image.png
  9. 編譯一下,應(yīng)該能編譯成功,也可能會報找不到pch文件的錯誤什么的,去CordovaLib.xcodeproj 里設(shè)置一下pch的路徑就行了
  10. #import "Cordova/CDVViewController.h"后,使用CDVViewController就可以了,但是此時是沒有資源文件的,所以還剩最后一步,添加資源
  11. 添加www文件夾,這里注意,不要直接Add Files添加,要拖進(jìn)去,并且Added folders要選擇folder references,這樣添加進(jìn)去的文件夾是藍(lán)色的,此時運行,正常顯示
    Paste_Image.png
  12. 這里的www文件夾一定要是藍(lán)色的才可以,如果是黃色的文件夾,會提示找不到www里的index.html


    Paste_Image.png

    當(dāng)然這個www路徑和Index.html的名字什么的都可以去CordovaLib.xcodeproj中修改

  13. 以上完成以后,應(yīng)該就可以正常運行了,不會有異常,但是在 Archive 的時候,會提示找不到文件
    Paste_Image.png

    網(wǎng)上查了一下,有好多人有這個情況,解決辦法是 Header Search Path 加入
    "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include"
    這個方法似乎對大多數(shù)人都湊效了,然而,
    并沒有什么卵用,還是報錯,最后終于找到一個大神的解決方法
    在 Header Search Path 加入
    "$(BUILT_PRODUCTS_DIR)" "$(OBJROOT)/UninstalledProducts/include" "$(TARGET_BUILD_DIR)/usr/local/lib/include”

解決。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Cordova 是一個可以讓 JS 與原生代碼(包括 Android 的 java,iOS 的 Objective...
    iOS_Developer閱讀 700評論 1 4
  • 我們知道,在UIKit中的UIWebView雖然已經(jīng)提供了很多功能了,比如JavaScript和Objc之間的通信...
    DestinyFighter_閱讀 11,152評論 12 24
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,733評論 25 709
  • 悲中樂. 父子歡 第四次化療悲喜而作 徐 宏 術(shù)后療傷四入院,懼病遵醫(yī)愁無淚。療毒流殤,人若動物。...
    sunxuhong閱讀 1,830評論 10 5
  • 沒有等到月光和花開 也沒有等到晨風(fēng)和離別的問候 在我眼中 相遇可以無數(shù)遍 可我愛你,只有一遍 可你不愛我,也只有一...
    子禾CC閱讀 133評論 0 0

友情鏈接更多精彩內(nèi)容