【筆記】Cordova平臺(tái)創(chuàng)建項(xiàng)目以及進(jìn)行apk簽名的詳細(xì)步驟(含keystore生成)

第一步 安裝JDK

安裝jdk,這個(gè)只需要在oracle官網(wǎng)下載即可,需要使用1.8以上的版本。

第二步 JDK環(huán)境變量

配置jdk的環(huán)境變量,這一步網(wǎng)絡(luò)上有非常多的教程,不再贅述。

第三步 生成簽名包

  1. windows徽標(biāo)鍵+R 打開運(yùn)行窗口,輸入cmd 打開命令行工具。
  2. 輸入 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
  1. 依照提示填寫相關(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è)置),具體方式如下:

  1. 打開文件找到 widget 元素。
  2. 新增 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)行簽名。

  1. 首先我們復(fù)制前面生成的keystore文件到 apk所在的目錄。
  2. 然后在目錄的空白位置按住shift+鼠標(biāo)右鍵,再?gòu)棾龅牟藛沃羞x擇 在此處打開powershell窗口
  3. 執(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)用簽名

  1. 下載簽名工具([點(diǎn)此下載(https://res.wx.qq.com/open/zh_CN/htmledition/res/dev/download/sdk/Gen_Signature_Android2.apk "微信簽名工具")])
  2. 在模擬器中安裝你的已簽名APK項(xiàng)目。
  3. 在模擬器中安裝下載好的簽名工具。
  4. 在簽名工具中輸入上面設(shè)置的包名。
  5. 點(diǎn)擊確定后就會(huì)在輸入框下方顯示 生成成功的應(yīng)用簽名。倘若包名填寫錯(cuò)誤,是無(wú)法生成應(yīng)用簽名的。

轉(zhuǎn)載請(qǐng)注明出處,Cordova常見(jiàn)問(wèn)題可以參考我的其他博客文章。

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

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

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