在Phonegap 3.x CLI上构buildAndroid版本的apk

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

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

这是Phonegap 3.0.x到3.3.x. 对于PhoneGap 3.4.0及更高版本,请参阅下文 。

在Phonegap文档中find答案的一部分。 整个过程如下:

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

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

  3. 使用android开发人员官方文档中的说明签署并alignmentAPK。

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

在PhoneGap 3.4.0中,你可以调用:

 cordova build android --release 

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

 key.store=/Path/to/KeyStore/myapp-release-key.keystore key.alias=myapp 

然后,系统会提示您input密钥库密码,输出文件(myapp-release.apk)结束于已经签名和alignment的“platforms / android / ant-build”目录并准备好部署。

在cordova6.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 

先前的回答:

根据cordova 5.0.0

 { "android": { "release": { "keystore": "app-release-key.keystore", "alias": "alias_name" } } } 

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

keystore文件的位置是相对于platforms/android/cordova/ ,所以在上面的configuration中.keystore文件和build.json是在同一个目录下的。

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

在@ steven-anderson之后,你也可以在ant.properties中configuration密码,这样就可以完全自动化

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

 key.store=../../yourCertificate.jks key.store.password=notSoSecretPassword key.alias=userAlias key.alias.password=notSoSecretPassword 

只是想了很多,因为我得到了同样的问题,但在我的安装命令“cordova”从来没有和“电话差距build立android – 释放”只是忽略了平台/ android / ant.properties。

所以看我的平台filter里面,我发现了一个名为“cordova”的文件夹,里面有一个“build”二进制文件,它接受了–release参数,它向我询问了关键链,并且以一个已经签名并准备好的产品APK。

这是从来没有logging在手机的差距网站的任何部分,坦率地说,现在我有点讨厌phonegap :(这应该是让事情更容易,但一切都只是复杂:(

我通过在zipalign相同的目录下粘贴已签名的应用程序来获得这个工作。 看来aapt.exe甚至在给定path时也找不到源文件。 即这不起作用zipalign -f -v 4 C:… \ CordovaApp-release-unsigned.apk C:… \ destination.apk它达到了aapt.exeCordovaApp-release-unsigned.apk,冻结并在返回“aapt.exeCordovaApp-release-unsigned.apk”不被识别为内部或外部命令,可操作程序或batch file。 这样做zipalign -f -v 4 CordovaApp-release-unsigned.apk myappname.apk

我知道这个问题专门针对Phonegap 3.X的问题,但仅供参考,任何4.0.0以上的Phonegap版本都使用Gradle而不是Ant来默认构build。 要使用Ant而不是Gradle,可以将其添加到config.xml中:

 <preference name="android-build-tool" value="ant" /> 

使用Gradle时,密钥库签名信息现在需要进入新的位置( 如本文所述 )。 在与“build.gradle”文件相同的文件夹中创build名为“release-signing.properties”的新文件,并放入以下内容:

 storeFile=..\\..\\some-keystore.keystore storeType=jks keyAlias=some-key // if you don't want to enter the password at every build, you can store it with this keyPassword=your-key-password storePassword=your-store-password 

你可以尝试这个命令,它应该build立并运行应用程序(所以应该创build.apk):

phonegap local run android