如何解决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 安全文件位置并为所有管道启用它
然后我按照以下方式设置签名步骤:
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.
这让我把手举在空中,然后摇头。
解决方法
原因是像往常一样缺乏内部心理能力。我没有设置输出目录。将 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 举报,一经查实,本站将立刻删除。