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