Ionic Cordova Android -使用Cordova buildConfig签名是否也压缩对齐?

w51jfk4q  于 2022-12-16  发布在  Ionic
关注(0)|答案(1)|浏览(167)

我使用一个build.json文件来构建和签名我的Android版本的Ionic应用程序。
所以在build.json

{
      "android": {
        "debug": {
          "keystore": "MyApp.keystore",
          "storePassword": "mypassword",
          "alias": "MyApp",
          "password": "mypassword",
          "keystoreType": ""
        },
        "release": {
          "keystore": "MyApp.keystore",
          "storePassword": "mypassword",
          "alias": "MyApp",
          "password": "mypassword",
          "keystoreType": ""
        }
      }
    }

然后我会用...

ionic cordova build android --prod --release --buildConfig=platform_build_files/android/build.json

这会在一个命令中生成我的签名文件。我刚刚(令人震惊地!)意识到我已经忘记了所有我看到到处提到的zipalign
我的问题是,上面的也是zipalign吗?如果不是,我怎么能也包括这个(我能把它作为一个npm脚本运行,这样我就可以很容易地通过npm run调用它了吗?

egmofgnx

egmofgnx1#

我和你有同样的担心,cordova文档没有涉及这个问题。我只是在阅读你的问题后发现一个GH问题,其中提到zipalign似乎被使用。https://github.com/apache/cordova-android/issues/1077
现在,如果你阅读GH问题和zipalign文档,它说,当你zipalign的问题,在签署之前或之后,取决于你如何签署APK,例如jarsignerapksigner.然而,如果你读了所有的评论,看起来Android Gradle插件似乎正在做所有的工作, cordova 团队不知道引擎盖下会发生什么,这可能是他们不知道的原因别在文件里提。
唯一能让我平静下来的是通过运行以下命令来检查生成的已签名APK是否确实对齐:zipalign -c -v 4 platforms/android/app/build/outputs/apk/release/app-release.apk
如果成功,则以Verification successful结尾;如果失败,则以Verification FAILED结尾。您可以排除包含OK的行,以查看哪些行失败:zipalign -c -v 4 platforms/android/app/build/outputs/apk/release/app-release.apk | grep -v OK(或| grep BAD,如果您愿意)
下面是有趣的部分。我已经通过删除--buildConfig标志验证了生成的APK(因此输出没有签名),有趣的是,APK仍然通过了zipalign检查。请注意,如果有问题,我使用cordova 11.0.0。我听说只有cordova 8.0.0+ zipalign s,可能取决于cordova附带的Android Gradle插件,但由于缺少文档,我无法确认。

相关问题