为什么"离子cordova构建"只生成未签名的APK?

时间:2017-05-19 09:10:47

标签: cordova ionic-framework apk

我使用以下命令生成已签名的APK,我很确定这几个月前有效:

$ ionic cordova build android --prod --release --keystore="./my-keystore-file.keystore" --storePassword=mypass --alias=mymail@gmail.com --password=mypass

但是,只会生成一个未签名的APK。如何使用ionic生成签名的APK?

2 个答案:

答案 0 :(得分:5)

您需要在Cordova特定的参数之前包含-- --

$ ionic cordova build android --prod --release -- -- --keystore="./my-keystore-file.keystore" --storePassword=mypass --alias=mymail@gmail.com --password=mypass

build android --prod --release选项由Ionic CLI处理,而第一个--之后的所有内容都传递给Ionic Cordova插件。然后第二个--之后的所有内容都会传递给科尔多瓦本身。

答案 1 :(得分:0)

发布离子安卓应用..

  1. 向项目添加平台..
  2. ionic cordova platform add android

    1. 现在构建要发布的项目
    2. cordova build android --release

      1. 我们可以在platforms/android/build/outputs/apk找到我们未签名的APK文件。现在,我们需要签署未签名的APK。
      2. 让我们使用JDK附带的keytool命令生成我们的私钥。

        keytool -genkey -v -keystore <name_of_keystore>.keystore -alias alias_name 
        -keyalg RSA -keysize 2048 -validity 10000
        

        输入keystore文件的密码。记住这个密码,将来会很有用。进入所有字段后,它会生成一个密钥库文件。将其副本保存在其他地方以备将来使用。如果丢失它,您将无法向您的应用程序提交更新!

        1. 要签署未签名的APK,请运行同时包含在JDK中的jarsigner工具:
        2.   

          jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore   name_of_keystore.keystore path_to_unsigned_apk_file.apk alias_name

          为方便使用,将未签名的apk复制到项目的根目录,只需使用filename.apk代替路径。

          它会要求我们输入密钥库密码。

          1. 最后,我们需要运行zip align工具来优化APK
          2.   

            zipalign -v 4 HelloWorld-release-unsigned.apk new_apk_name.apk

            现在我们有最终发布的二进制文件HelloWorld.apk,我们可以在Google Play商店发布。

            来源:离子docs