【问题标题】:Azure Pipeline Xamarin Android You uploaded an APK that is not zip aligned. You will need to run a zip align tool on your APK and upload it againAzure Pipeline Xamarin Android 您上传的 APK 不是 zip 对齐的。您需要在 APK 上运行 zip align 工具并再次上传
【发布时间】:2023-03-17 02:03:01
【问题描述】:

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

导致我的头发变薄变白的步骤是签名和拉链对齐。

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

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.

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

【问题讨论】:

  • 很高兴知道您找到了原因。请标记您的答案,以便有相同问题的人更容易找到答案。
  • @WalterQian-MSFT 完成,忘了做。谢谢提醒。

标签: android xamarin azure-devops google-play azure-pipelines


【解决方案1】:

原因是像往常一样缺乏内在的心智能力。我没有设置输出目录。将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

【讨论】:

    猜你喜欢
    • 2020-04-09
    • 2014-05-06
    • 2016-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多