在Phonegap 3.x CLI上构建android发行版apk

Gui*_*rez 108 android cordova cordova-cli

如何使用Phonegap 3.x CLI在本地构建Android应用程序,准备发布?我检查项目的platforms/android目录中生成的bin文件夹,并且只有.debug APK.

顺便说一句,我使用这个命令: phonegap local build android

Gui*_*rez 153

这适用于Phonegap 3.0.x到3.3.x. 对于PhoneGap 3.4.0及更高版本,请参见下文.

找到部分答案在这里,在PhoneGap的文档.整个过程如下:

  1. 打开命令行窗口,然后转到/ path/to/your/project/platforms/android/cordova.

  2. build --release.这会在/ path/to/your/project/platforms/android/bin文件夹中创建一个未签名的发布APK ,名为YourAppName-release-unsigned.apk.

  3. 使用android开发者官方文档中的说明签名并对齐APK .

感谢@LaurieClark的链接(http://iphonedevlog.wordpress.com/2013/08/16/using-phonegap-3-0-cli-on-mac-osx-10-to-build-ios-and- android-projects /),以及发布它的博客,因为它让我走上了正轨.

  • `cordova build android --release`也有效 (54认同)
  • 我正在运行Cordova 3.4.1-0.1.0,文件在`/ path/to/your/project/platforms/android/ant-build`中创建 (13认同)
  • 我不得不手动修改我的AndroidManifest.xml文件,其中我有`<application android:debuggable ="true"...`我需要更改为`<application android:debuggable ="false"` (9认同)
  • 你还需要拉链对齐之后:zipalign -v 4 your-unaligned.apk your-aligned.apk (3认同)

Ste*_*son 112

在PhoneGap 3.4.0中,您可以致电:

cordova build android --release
Run Code Online (Sandbox Code Playgroud)

如果您在'platforms/android'目录中设置了'ant.properties'文件,如下所示:

key.store=/Path/to/KeyStore/myapp-release-key.keystore
key.alias=myapp
Run Code Online (Sandbox Code Playgroud)

然后,系统将提示您输入密钥库密码,输出文件(myapp-release.apk)最终位于已经签名并已准备好部署的"platforms/android/ant-build"目录中.

  • 在`platforms/android`中创建了`ant.properties`,并将这两个属性放入其中.工作完美,谢谢! (8认同)
  • 如果您不确定密钥库/别名或如何创建它们,请参阅http://developer.android.com/tools/publishing/app-signing.html (6认同)
  • 另请注意,您可以在此文件中指定key.store.password和key.alias.password属性,因此每次构建版本时都不必输入它.当然要谨慎,不要将此文件提交到版本系统. (6认同)
  • 对于cordova 5.0.0及更高版本,在项目的根目录下创建一个build.json,并用{"android":{"release":{"keystore":"/ path/to/your.keystore","alias"填充它":"youalias"}}}而不是ant.properties文件.仅供参考https://cordova.apache.org/docs/en/edge/guide_platforms_android_tools.md.html#Android%20Shell%20Tool%20Guide (5认同)

KrI*_*HnA 19

在cordova 6.2.0中

cd cordova/ #change to root cordova folder
platforms/android/cordova/clean #clean if you want
cordova build android --release -- --keystore="/path/to/keystore" --storePassword=password --alias=alias_name #password will be prompted if you have any
Run Code Online (Sandbox Code Playgroud)

上一个答案:

根据cordova 5.0.0

{
     "android": {
         "release": {
             "keystore": "app-release-key.keystore",
             "alias": "alias_name"
         }
     }
 }
Run Code Online (Sandbox Code Playgroud)

./build --release --buildConfig build.json从目录运行platforms/android/cordova/

密钥库文件的位置是相对的platforms/android/cordova/,所以在上面的配置.keystore文件中build.json都在同一目录下.

keytool -genkey -v -keystore app-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000


Sim*_*dro 15

在@ steven-anderson之后,您还可以在ant.properties中配置密码,因此该过程可以完全自动化

所以如果你把平台\ android\ant.properties放在下面

key.store=../../yourCertificate.jks
key.store.password=notSoSecretPassword
key.alias=userAlias
key.alias.password=notSoSecretPassword
Run Code Online (Sandbox Code Playgroud)