如何使用Phonegap 3.x CLI在本地构建Android应用程序,准备发布?我检查项目的platforms / android目录中生成的bin文件夹,并且只有.debug APK。
顺便说一下,我使用这个命令:phonegap local build android
答案 0 :(得分:152)
这适用于Phonegap 3.0.x至3.3.x.对于PhoneGap 3.4.0及更高版本,请参阅below。
在Phonegap文档中找到答案here的一部分。整个过程如下:
打开命令行窗口,然后转到/ path / to / your / project / platforms / android / cordova 。
运行build --release
。这会在/ path / to / your / project / platforms / android / bin 文件夹中创建一个未签名的发布APK,名为YourAppName-release-unsigned.apk。
使用android developer official docs上的说明签名并对齐APK。
感谢@LaurieClark提供链接(http://iphonedevlog.wordpress.com/2013/08/16/using-phonegap-3-0-cli-on-mac-osx-10-to-build-ios-and-android-projects/)以及发布该帖子的博主,因为它让我走上了正轨。
答案 1 :(得分:112)
在PhoneGap 3.4.0中,您可以致电:
cordova build android --release
如果您在'platforms / android'目录中设置了'ant.properties'文件,如下所示:
key.store=/Path/to/KeyStore/myapp-release-key.keystore
key.alias=myapp
然后,系统将提示您输入密钥库密码,输出文件(myapp-release.apk)最终会出现在已经签名并已准备好部署的“platforms / android / ant-build”目录中。
答案 2 :(得分:19)
在cordova 6.2.0中
<media:item>a</media:item>
<abc:item>b</abc:item>
<foo:item>c</foo:item>
<item>d</item>
上一个回答:
根据cordova 5.0.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
并从目录{
"android": {
"release": {
"keystore": "app-release-key.keystore",
"alias": "alias_name"
}
}
}
./build --release --buildConfig build.json
密钥库文件位置相对于platforms/android/cordova/
,因此在上面的配置中platforms/android/cordova/
文件和.keystore
位于同一目录中。
build.json
答案 3 :(得分:15)
跟随@ steven-anderson 您还可以在ant.properties中配置密码,因此该过程可以完全自动化
所以如果你把平台\ android \ ant.properties放入以下
key.store=../../yourCertificate.jks
key.store.password=notSoSecretPassword
key.alias=userAlias
key.alias.password=notSoSecretPassword
答案 4 :(得分:4)
只是想知道很多,因为我遇到了同样的问题,但在我的安装中,命令“cordova”从未可用,“手机间隙构建android --release”只是忽略了平台/ android / ant.properties。
所以在我的平台过滤器里面找到了一个名为“cordova”的文件夹,里面有一个“构建”二进制文件,它接受了--release参数,它问我关键链,最后签了一个准备生产APK。
这从未记录在手机间隙网站的任何部分,坦率地说现在我有点讨厌手机间隙:(它本来应该让事情变得更容易,但一切都很复杂:(
答案 5 :(得分:1)
我通过复制粘贴与zipalign在同一目录中的已签名应用程序来实现此功能。即使给定路径,aapt.exe似乎也找不到源文件。即 这没用 zipalign -f -v 4 C:... \ CordovaApp-release-unsigned.apk C:... \ destination.apk 它达到aapt.exeCordovaApp-release-unsigned.apk,冻结并返回时返回 'aapt.exeCordovaApp-release-unsigned.apk'未被识别为内部或外部命令,可运行程序或批处理文件。 这样做了 zipalign -f -v 4 CordovaApp-release-unsigned.apk myappname.apk
答案 6 :(得分:1)
构建PhoneGap Android应用以部署到Google Play商店
这些步骤适用于Cordova,PhoneGap或Ionic。唯一的区别是,无论何时拨打cordova
,都可以将phonegap
或ionic
替换为您的特定情况。
完成开发并准备部署后,请按照以下步骤操作:
打开命令行窗口(Mac上的终端和Windows上的Linux OR命令提示符)。
转到/ path /到/ your / project /,我们将其称为Project Root。
在项目根目录下,删除&#34;控制台&#34;插件集中的插件。
命令为:cordova plugin rm cordova-plugin-console
当仍在项目根目录时,使用cordova build命令创建APK以进行发布分发。
命令为:cordova build --release android
上述过程在文件夹android-release-unsigned.apk
中创建一个名为ProjectRoot/platforms/android/build/outputs/apk/
的文件
使用https://developer.android.com/studio/publish/app-signing.html#signing-manually上的说明签名并对齐APK。在此步骤结束时,您获得的APK可以上传到Play商店。
注意:作为新手或初学者,最后一步可能会让我感到有些困惑。可能会遇到一些问题,可能会对这些命令是什么以及在哪里找到它们有一些疑问。
<强> Q1。什么是 jarsigner 和 keytool ?
答案:Android应用程序签名说明具体告诉您 jarsigner 和 keytool 的全部内容但是它并没有告诉您在哪里如果您遇到未找到错误的错误,请找到它们。在命令行窗口中。
因此,如果您已将Java Development Kit(JDK)添加到 PATH 变量中,则只需运行“指南”中的命令即可。但是,如果您没有在PATH中使用它,您始终可以从JDK安装的 bin 文件夹中访问它们。
<强> Q2。 zipalign 在哪里?
答案:很有可能找不到 zipalign 命令并收到“找不到错误”错误消息&#39;。您可能在谷歌上搜索 zipalign 以及在哪里找到它?
zipalign 实用程序存在于Android SDK安装文件夹中。在macOS上,默认位置为user-name/Library/Android/sdk/
。如果你转到该文件夹,你会发现一堆其他文件夹,如docs
,platform-tools
,build-tools
,tools
,add-ons
...
打开build-tools
文件夹。 cd build-tools
。在这里,会有许多文件夹根据您在Android SDK Manager中使用的构建工具链进行版本控制。 ZipAlign 在每个文件夹中都可用。我个人去找最新版本的文件夹。打开任何。
在macOS或Linux上,您可能必须使用./zipalign
而不是简单地输入zipalign
作为文档提及。在Windows上,zipalign
已经足够了。
答案 7 :(得分:0)
我知道这个问题专门询问了Phonegap 3.X,但仅供参考,默认情况下要构建任何Phonegap version above 4.0.0 uses Gradle instead of Ant。要使用Ant而不是Gradle,可以将其添加到config.xml:
<preference name="android-build-tool" value="ant" />
使用Gradle时,密钥库签名信息现在需要进入新位置(as outlined in this post)。创建名为&#39; release-signing.properties &#39;的新文件与&#34; build.gradle&#34;相同的文件夹将文件放入以下内容:
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
答案 8 :(得分:-7)
您可以尝试此命令,它应该构建并运行应用程序(因此应该创建.apk):
phonegap local run android