一被冒、 跑通cordova
了解cordova打包發(fā)布流程棒掠,為代碼在真機(jī)上調(diào)試打基礎(chǔ)
嘗試一:生成一個(gè)cordova殼子,將工程代碼打包茉稠,放入殼子對應(yīng)的位子再用cordova打包生成app文件额湘,在手機(jī)上看效果
- 安裝cordova:npm install -g cordova卿吐;
- 生成項(xiàng)目殼子:cordova create myApp
- config.xml目錄: cordova的配置文件
- hooks目錄:存放自定義cordova命令的腳本文件旁舰。每個(gè)project命令都可以定義before和after的Hook,比如:
before_build嗡官、after_build箭窜。 - platforms目錄:各個(gè)平臺的原生代碼工程,不要手動修改衍腥,因?yàn)樵赽uild的時(shí)候會被覆蓋磺樱。
- plugins目錄: 插件目錄(cordova提供的原生API也是以插件的形式提供的)。
- www目錄:源代碼目錄婆咸,在cordova prepare的時(shí)候會被copy到各個(gè)平臺工程的assets\www目錄中竹捉。
其中index.html為應(yīng)用的入口文件。
- 查看可添加的平臺:cordova platform ls ;添加平臺:cordova platform add Android/ios
- 打包工程代碼:npm run build
- 將生成的www文件替換入殼子中
- 打包殼子和項(xiàng)目代碼:cordova build尚骄,生成對應(yīng)apk文件
- 如果是android需下載jdk
- 如果是ios需下載xcode
- 為了讓項(xiàng)目更好的測試和運(yùn)行块差,下載Android Studio和xcode跑兩端
嘗試2
當(dāng)前項(xiàng)目是基于vue集成了cordova,通過命令行直接打包倔丈,不需要再造殼子
- 直接通過npm run cordova憨闰,下載cordova對應(yīng)的依賴
- 必須先npm run build之后再執(zhí)行上述命令
- 本機(jī)需要有cordova環(huán)境,即需下載xcode,androidStudio,jdk乃沙,cocoapods等
下載cocoapods時(shí)通過命令sudo gem install -n /usr/local/bin cocoapods下載最新的
- 管理rvm命令:rvm list ,rvm --default use []
二、 xcode問題記錄:
- cordova-plugin-uniquedeviceid和phonegap-plugin-push無法通過cordova prepare android/ios下載
通過cordova plugin add 【依賴名】解決 - 使用xcode報(bào)錯(cuò):Module 'FirebaseInstanceID' not found诗舰;
- 嘗試安裝cocoapods警儒,并pod setup(安裝有點(diǎn)慢)
- cordova platform rm ios,刪掉原來的ios項(xiàng)目
- cordova platform add ios ,加入
- 進(jìn)入platform/ios目錄,執(zhí)行pod install --verbose
- xcode調(diào)試
- 在safari中進(jìn)入Preferences-Advanced-show Develop menu
- safari菜單欄中Develop-對應(yīng)的模擬機(jī)-對應(yīng)的網(wǎng)頁
三眶根、 Android Studio問題記錄
- 找不到com.lint; 在allproject中加入google()蜀铲,將android刪掉在加入
- 找不到google-service.json,去firebase下載后運(yùn)行再刪掉
- 暫時(shí)還無法在androidstudio的模擬機(jī)上運(yùn)行属百,google-services.json一直找不到记劝;猜測:
需要購買谷歌服務(wù),或者公司已經(jīng)有對應(yīng)賬號
安卓模擬機(jī)無法訪問到谷歌服務(wù)族扰,服務(wù)無法連接
其他先決條件
解決方案:
刪掉android平臺在加入時(shí)厌丑,默認(rèn)會加入最新的,需要指定為6.4.0
android sdk必須使用26渔呵,不要升級
刪除安卓平臺在加入
- AAPT2 error怒竿,找不到ttIndex和fontVariationSettings
-
解決方案:
找到project/build.gradle文件,添加以下代碼
// 在build.gradle(Module:app)單獨(dú)配置
configurations.all {
resolutionStrategy {
force 'com.android.support:support-v4:27.1.0'
}
}
- unmearge max錯(cuò)誤
-
解決方案
在project/build.gradle中注釋掉以下代碼
dependencies {
implementation fileTree(dir: 'libs', include: '*.jar')
// SUB-PROJECT DEPENDENCIES START
implementation(project(path: "CordovaLib"))
compile "com.android.support:support-v4:24.1.1+"
compile "com.android.support:support-v4:+"
// 下面這行和上面有沖突
// compile "com.android.support:support-v13:26.+"
compile "me.leolin:ShortcutBadger:1.1.17@aar"
compile "com.google.firebase:firebase-messaging:11.6.2"
// SUB-PROJECT DEPENDENCIES END
}
四、 總結(jié)
cordova requirements
安卓
- java jdk :通過www.oracle.com下載8.0版本
- android sdk:安裝android studio后自動下載
- android target:安裝android studio后自動下載
- gradle :通過brew install gradle下載
ios
- macOS:系統(tǒng)自帶
- xcode:app store下載
- ios-deploy:npm install -g ios-deploy下載
- cocoapods:先下載rvm扩氢,通過rvm的sudo gem install -n /usr/local/bin cocoapods下載
打包流程
- 先使用npm run build生成web包
- 在通過cordova build android/ios 來生成安卓和ios版本
- 通過as或者xcode模擬器看效果