【问题标题】:build release Ionic does not generate构建版本 Ionic 不生成
【发布时间】:2019-03-13 02:49:53
【问题描述】:
我正在尝试构建 APK 以在 Play 商店中的 Ionic 上发布我的请求。
但是当涉及到下面的命令时,我得到了错误:
PS C:\Projetos\XXX> jarsigner -verbose -sigalg SHA1withRSA
-digestalg SHA1 -keystore android.keystore 平台/android/app/build/outputs/apk/release/app-release-unsigned.apk
android-app-key 拾取 _JAVA_OPTIONS: -Xmx512M Enter Passphrase for
密钥库:jarsigner:
无法打开jar文件:
平台/android/app/build/outputs/apk/release/app-release-unsigned.apk
并且发布不是在APK文件夹中生成的。有人可以帮我吗?
【问题讨论】:
标签:
ionic-framework
ionic3
【解决方案1】:
检查 android.keystore 是否位于 C:\Projetos\XXX 目录。还要检查平台/android/app/build/outputs/apk/release/app-release-unsigned.apk 这个路径上是否存在 app-release-unsigned.apk。
【解决方案2】:
这个问题可能是由于以下原因引起的:
- app-release-unsigned.apk 不存在
- 执行上述命令时,您不在发布文件夹中,发布文件夹可以在platforms/android/app/build/outputs/apk/release 中找到
- 密钥库不存在
确认您正在执行这些步骤
- 运行ionic cordova build --release android后确保构建成功并在下创建release文件夹,路径为platforms/android/app/build/outputs/apk/释放。
- 创建发布文件夹后,通过终端导航到该文件夹
- 到达那里后,通过运行以下命令生成密钥库
keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 -validity 10000
您可以将密钥名称更改为任何名称,在此示例中,密钥名称为 my-release-key,别名也由您决定,此处别名为 alias_name。
- 密钥将在发布文件夹下创建,将此密钥保存在其他地方以发布后续构建,同时保存别名。
- 创建密钥后运行
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore my-release-key.keystore app-release-unsigned.apk alias_name 在此处使用相同的别名代替 alias_name 和密钥库名称代替 my-release-key.keystore 你什么在第 4 步中选择,确保您发布的 apk 名称与 app-release-unsigned.apk 相同,如果不同,也请更改它。
- 最后运行
zipalign -v 4 app-release-unsigned.apk myapp.apk,压缩你的应用程序,这将创建名为myapp.apk的压缩apk,它与你将用于发布的apk相同。
【解决方案3】:
我输入了错误的命令。正确生成的是
ionic cordova build --release
然后,为了第一次生成密钥,我使用了这些命令:
keytool -genkey -v -keystore xxx.keystore -alias xxx-app-key -keyalg RSA -keysize 2048 -validity 10000
jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore GestaoDespesas.keystore platforms\android\app\build\outputs\apk\release\app-release-unsigned.apk xxx-app-key
.\zipalign -v 4 platforms\android\app\build\outputs\apk\release\xxx.apk xxx.apk