【发布时间】:2013-12-22 13:26:20
【问题描述】:
如何使用 Phonegap 3.x CLI 在本地构建 Android 应用程序,准备发布?我检查了项目的platforms/android目录中生成的bin文件夹,只有.debug APKs。
顺便说一句,我使用这个命令:phonegap local build android
【问题讨论】:
标签: android cordova cordova-cli
如何使用 Phonegap 3.x CLI 在本地构建 Android 应用程序,准备发布?我检查了项目的platforms/android目录中生成的bin文件夹,只有.debug APKs。
顺便说一句,我使用这个命令:phonegap local build android
【问题讨论】:
标签: android cordova cordova-cli
这适用于 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/) 以及发布该链接的博主,因为它让我步入正轨。
【讨论】:
<application android:debuggable="true"... 我需要更改为 <application android:debuggable="false"
/path/to/your/project/platforms/android/ant-build 中创建的
在 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”目录中,该目录已签名并对齐并准备好部署。
【讨论】:
platforms/android 中创建ant.properties 并将这两个属性放入其中。完美运行,谢谢!
在科尔多瓦 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
上一个答案:
根据科尔多瓦 5.0.0
{
"android": {
"release": {
"keystore": "app-release-key.keystore",
"alias": "alias_name"
}
}
}
并从目录platforms/android/cordova/ 运行./build --release --buildConfig build.json
keystore 文件位置是相对于platforms/android/cordova/,所以在上面的配置中.keystore 文件和build.json 在同一个目录中。
keytool -genkey -v -keystore app-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
【讨论】:
跟进@steven-anderson 您还可以在 ant.properties 中配置密码,因此该过程可以完全自动化
所以如果你把 platform\android\ant.properties 放在下面
key.store=../../yourCertificate.jks
key.store.password=notSoSecretPassword
key.alias=userAlias
key.alias.password=notSoSecretPassword
【讨论】:
只是想知道很多,因为我遇到了同样的问题,但是在我的安装中,命令“cordova”永远不可用,“phone gap build android --release”只是忽略了平台/android/ant.properties。
所以查看我的平台过滤器,我发现了一个名为“cordova”的文件夹,其中有一个接受 --release 参数的“build”二进制文件,它要求我提供密钥链,我以一个签名和结束准备好用于生产 APK。
这从来没有记录在电话间隙网站的任何部分,坦率地说,现在我有点讨厌电话间隙:(它应该让事情变得更容易,但一切都很复杂:(
【讨论】:
构建 PhoneGap Android 应用以部署到 Google Play 商店
这些步骤适用于 Cordova、PhoneGap 或 Ionic。唯一的区别是,无论在何处调用 cordova,都应根据您的特定情况将其替换为 phonegap 或 ionic。
完成开发并准备好部署后,请按照以下步骤操作:
打开命令行窗口(macOS 和 Linux 上的终端或 Windows 上的命令提示符)。
转到 /path/to/your/project/,我们将其称为项目根目录。
在项目根目录下,从您的插件集中删除“控制台”插件。
命令是:cordova plugin rm cordova-plugin-console
在项目根目录下,使用 cordova build 命令创建一个 APK 用于发布分发。
命令是:cordova build --release android
上述过程在ProjectRoot/platforms/android/build/outputs/apk/文件夹中创建了一个名为android-release-unsigned.apk的文件
使用https://developer.android.com/studio/publish/app-signing.html#signing-manually 处的说明签名并对齐 APK
在此步骤结束时,您获得的 APK 可以上传到 Play 商店。
注意:作为新手或初学者,最后一步对我来说可能有点混乱。人们可能会遇到一些问题,并且可能对这些命令是什么以及在哪里可以找到它们有一些疑问。
第一季度。 jarsigner 和 keytool 是什么?
Ans: Android 应用签名说明确实告诉您什么是 jarsigner 和 keytool 都是关于但如果您在命令行窗口中遇到“找不到命令错误”,它不会告诉您在哪里可以找到它们。
因此,如果您已将 Java 开发工具包 (JDK) 添加到您的 PATH 变量中,则只需按照指南中的方式运行命令即可。但是,如果您的 PATH 中没有它,您可以随时从 JDK 安装的 bin 文件夹中访问它们。
第二季度。 zipalign在哪里?
Ans:很有可能找不到zipalign命令并收到'命令未发现错误'。您可能会在谷歌上搜索 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 管理器中使用的构建工具链进行版本控制。 ZipAlign 在每个文件夹中都可用。我个人会选择带有最新版本的文件夹。打开任何。
在 macOS 或 Linux 上,您可能必须使用 ./zipalign,而不是像文档中提到的那样简单地输入 zipalign。在 Windows 上,zipalign 就足够了。
【讨论】:
我通过将签名的应用程序复制粘贴到与 zipalign 相同的目录中来实现此功能。即使给出了路径,aapt.exe 似乎也找不到源文件。 IE。 这没有用 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
【讨论】:
我知道这个问题专门询问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)。在与“build.gradle”文件相同的文件夹中创建名为“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
【讨论】:
你可以试试这个命令,它应该构建并运行应用程序(所以应该创建 .apk):
phonegap local run android
【讨论】: