在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答案的一部分。 整个过程如下:
-
打开一个命令行窗口,并转到/ path / to / your / project / platforms / android / cordova 。
-
运行
build --release
。 这会在/ path / to / your / project / platforms / android / bin文件夹中创build一个未签名的发行版APK,名称为YourAppName-release-unsigned.apk。 -
使用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