微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Azure Pipeline Xamarin Android 你上传的 APK 不是 zip 对齐的您需要在 APK 上运行 zip align 工具并再次上传

如何解决Azure Pipeline Xamarin Android 你上传的 APK 不是 zip 对齐的您需要在 APK 上运行 zip align 工具并再次上传

我正在尝试使用 AzureDevops Pipeline 为 Xamarin Android 应用设置构建管道。

导致我头发变细变灰的步骤是签名和 Zipaligning。

为了签名,我使用以下方法创建了一个自签名密钥:

keytool -genkeypair -v -keystore keystore.keystore -alias keyAlias -keyalg RSA -keysize 2048 -validity 10000

然后我将 keystore.keystore 添加到 azureDevOps 安全文件位置并为所有管道启用它

enter image description here

然后我按照以下方式设置签名步骤:

task: AndroidSigning@3
inputs:
apkFiles: '**/*.apk'
apksign: true
apksignerKeystoreFile: 'keystore.keystore'
apksignerKeystorePassword: '12345678'
apksignerKeystoreAlias: 'keyAlias'
apksignerKeyPassword: '12345678'
apksignerArguments: '--verbose'
zipalign: true

管道运行良好,没有错误,产生工件:

以下是签名步骤的部分日志:

开始:AndroidSigning
================================================== ============================> 任务:Android 签名说明:签名和对齐 Android
APK 文件版本:3.181.0 作者:微软公司
帮助 : https://docs.microsoft.com/azure/devops/pipelines/tasks/build/android-signing
================================================== ============================ > /Users/runner/Library/Android/sdk/build-tools/30.0.3/zipalign - v 4

/Users/runner/work/1/s/xxx.MobileApp/xxx.MobileApp.Android/obj/Release/android/bin/com.xxx.xxx.mobileapp.apk.unaligned
/Users/runner/work/1/s/xxx.MobileApp/xxx.MobileApp.Android/obj/Release/android/bin/com.xxx.xxx.mobileapp.apk
验证
的对齐 /Users/runner/work/1/s/xxx.MobileApp/xxx.MobileApp.Android/obj/Release/android/bin/com.xxx.xxx.mobileapp.apk
(4)...
49 AndroidManifest.xml (OK - 压缩)
...
28095862 meta-inf/proguard/androidx-annotations.pro(OK - 压缩)
验证成功
/Users/runner/Library/Android/sdk/build-tools/30.0.3/apksigner 标志
--ks /Users/runner/work/_temp/keystore.keystore --ks-pass pass:12345678 --ks-key-alias keyAlias --key-pass
通过:12345678 --verbose
/Users/runner/work/1/s/xxx.MobileApp/xxx.MobileApp.Android/obj/Release/android/bin/com.xxx.xxx.mobileapp.apk
签名整理:AndroidSigning

但是,当我尝试将 APK 上传到 Play 商店以“创建内部测试版本”时

我收到错误You uploaded an APK that is not zip aligned. You will need to run a zip align tool on your APK and upload it again.

这让我把手举在空中,然后摇头。

enter image description here

解决方法

原因是像往常一样缺乏内部心理能力。我没有设置输出目录。将 apkFiles: '**/*.apk' 更改为 apkFiles: '$(outputDirectory)/*.apk' 后,一切正常。

task: AndroidSigning@3
inputs:
apkFiles: '$(outputDirectory)/*.apk'
apksign: true
apksignerKeystoreFile: 'keystore.keystore'
apksignerKeystorePassword: '12345678'
apksignerKeystoreAlias: 'keyAlias'
apksignerKeyPassword: '12345678'
apksignerArguments: '--verbose'
zipalign: true

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。