第一步 安裝JDK
安裝jdk,這個(gè)只需要在oracle官網(wǎng)下載即可,需要使用1.8以上的版本。
第二步 JDK環(huán)境變量
配置jdk的環(huán)境變量,這一步網(wǎng)絡(luò)上有非常多的教程,不再贅述。
第三步 生成簽名包
- windows徽標(biāo)鍵+R 打開運(yùn)行窗口,輸入cmd 打開命令行工具。
- 輸入
keytool -genkeypair -alias @alias -keyalg RSA -validity @expiredate -keystore @keystoreRepositoryName -storepass @password命令
參數(shù)說(shuō)明:
| 參數(shù) | 說(shuō)明 | 示例 |
|---|---|---|
| @alias | 別名 | taylor |
| @expiredate | 過(guò)期天數(shù)(有效期) | 4000 |
| @keystoreRepositoryName | 倉(cāng)庫(kù)名稱 | taylor.keystore |
| @password | 密碼 | 123456 |
- 依照提示填寫相關(guān)內(nèi)容,牢記設(shè)置的密碼。
第四步 安裝Cordova
npm install -g cordova
-g 標(biāo)志是告訴 npm 我們?nèi)职惭b cordova。否則我們將會(huì)安裝在當(dāng)前工作目錄的 node_modules子目錄。
第五步 創(chuàng)建APP
$ cordova create hello com.example.hello HelloWorld
然后修改config.xml,設(shè)置Android的包名(ios的BundleId如果有需要也在此設(shè)置),具體方式如下:
- 打開文件找到
widget元素。 - 新增
android-packageName屬性,其值即為android的包名。ios-CFBundleIdentifier屬性 用于設(shè)置BundelId。
<widget id="com.xxx.xxx" android-packageName="com.xxx.www" ios-CFBundleIdentifier="com.xxx.www" version="1.0.0" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
...
</widget>
如果你沒(méi)有設(shè)置 android-packageName 那么在打包的時(shí)候,會(huì)默認(rèn)以 id屬性作為包名。
第六步 添加平臺(tái)
$ cordova platform add @platformname --save
@platformname的可選值:
| 參數(shù) | 說(shuō)明 |
|---|---|
| android | 安卓平臺(tái) |
| ios | 蘋果IOS平臺(tái) |
| browser | 瀏覽器平臺(tái) |
| wp8 | windowsPhone 8 |
| blackberry10 | 黑莓 10 |
| windows | Windows |
- 添加的平臺(tái)類型決定在打包之后的應(yīng)用程序可以安裝在何種平臺(tái)上,常用的添加android和browser即可。構(gòu)建android平臺(tái)需要安裝androidsdk,構(gòu)建ios平臺(tái)同樣需要相關(guān)的軟件支持,因此在windows上幾乎不能開發(fā)ios平臺(tái)的app了。
第七步 檢查前置條件(環(huán)境支持)
$ cordova requirements
執(zhí)行上述命令可以檢查目前的開發(fā)環(huán)境所缺少的配置項(xiàng),如果完全滿足條件,則會(huì)顯示類似如下的內(nèi)容:
$ cordova requirements
Requirements check results for android:
Java JDK: installed .
Android SDK: installed
Android target: installed android-19,android-21,android-22,android-23,Google Inc.:Google APIs:19,Google Inc.:Google APIs (x86 System Image):19,Google Inc.:Google APIs:23
Gradle: installed
Requirements check results for ios:
Apple OS X: not installed
Cordova tooling for iOS requires Apple OS X
Error: Some of requirements check failed
第八步 構(gòu)建APP
運(yùn)行下面命令為 所有添加的平臺(tái) 構(gòu)建:
$ cordova build
也可以指定平臺(tái)進(jìn)行構(gòu)建:
$ cordova build android
構(gòu)建(build)好的apk文件一般會(huì)在 \platforms\android\app\build\outputs\apk\debug\目錄,或許您已經(jīng)注意到了其中的debug,沒(méi)錯(cuò)上述命令生成的實(shí)際上是調(diào)試版本的應(yīng)用程序,此處應(yīng)該使用$ cordova build -realeas android生成正式版的apk文件,生成后的文件一般會(huì)在 \platforms\android\app\build\outputs\apk\release\ 目錄內(nèi),文件名稱為app-release-unsigned.apk。
第九步 簽名APK
在上一個(gè)步驟中,已經(jīng)生成了正式版本的apk文件了,接下來(lái)需要對(duì)apk進(jìn)行簽名。
- 首先我們復(fù)制前面生成的keystore文件到 apk所在的目錄。
- 然后在目錄的空白位置按住
shift+鼠標(biāo)右鍵,再?gòu)棾龅牟藛沃羞x擇在此處打開powershell窗口 - 執(zhí)行如下命令進(jìn)行簽名:
jarsigner -verbose -keystore @keystoreRepositoryName -signedjar @apkfilename @unreleasessignedapkname @alias
| 參數(shù) | 說(shuō)明 | 示例 |
|---|---|---|
| @keystoreRepositoryName | keystore文件名 | taylor.keystore |
| @apkfilename | 簽名后的apk文件名稱 | taylor.apk |
| @unreleasessignedapkname | 當(dāng)前文件中未簽名的apk文件名稱 | app-release-unsigned.apk |
| @alias | 別名 | taylor |
執(zhí)行完上述命令之后,就會(huì)在當(dāng)前目錄生成已簽名的apk文件。
- 注意:通常在網(wǎng)上搜索的資料,會(huì)將@alias參數(shù)寫成 xxx.keystore格式,對(duì)讀者產(chǎn)生誤導(dǎo),實(shí)際上此處應(yīng)該填寫的是你在創(chuàng)建keystore時(shí)候所填寫的keystore別名,否則你會(huì)產(chǎn)生
jarsigner: 找不到xxxAPKKey.jks的證書鏈。xxxxAPKKey.jks必須引用包含私有密鑰和相應(yīng)的公共密鑰證書鏈的有效密鑰庫(kù) 密鑰條目這樣的錯(cuò)誤。
第十步 用簽名工具獲取應(yīng)用簽名
- 下載簽名工具([點(diǎn)此下載(https://res.wx.qq.com/open/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android2.apk "微信簽名工具")])
- 在模擬器中安裝你的已簽名APK項(xiàng)目。
- 在模擬器中安裝下載好的簽名工具。
- 在簽名工具中輸入上面設(shè)置的包名。
- 點(diǎn)擊確定后就會(huì)在輸入框下方顯示 生成成功的應(yīng)用簽名。倘若包名填寫錯(cuò)誤,是無(wú)法生成應(yīng)用簽名的。
轉(zhuǎn)載請(qǐng)注明出處,Cordova常見(jiàn)問(wèn)題可以參考我的其他博客文章。