gpt4 book ai didi

xamarin.forms - Azure Devops 管道 - AndroidSigning 上缺少输入 APK

转载 作者:行者123 更新时间:2023-12-04 15:12:25 24 4
gpt4 key购买 nike

我正在为 Xamarin Android 应用设置构建管道。我已经完成了将项目拉取、恢复和构建到 APK 文件中的所有步骤。我的下一步是在发布之前签署包。

我目前拥有的:

  • 已创建 .keystore 文件并将其上传到 Pipelines > Library > Secure Files。我通过提供不正确的名称并观察结果,然后输入正确的名称来验证该文件的位置是否正确。
  • 密码作为安全变量存储在管道本身中。
  • 文件名和别名作为变量存储在管道文件本身。
  • AndroidSigning@3 的 YML 任务:

variables:
buildConfiguration: 'Release'
outputDirectory: '$(build.binariesDirectory)/$(buildConfiguration)'
solution: '**/MySolution.sln'
androidProject: '**/App.Android.csproj'
keystoreFile: 'my.keystore'
# keystoreAlias: 'aliasname'
keystoreAlias: 'aliasName'

...

- task: AndroidSigning@3
inputs:
apkFiles: '$(outputDirectory)/*.apk'
apksignerKeystoreFile: '$(keystoreFile)'
apksignerKeystorePassword: '$(keystorePassword)'
apksignerKeystoreAlias: '$(keystoreAlias)'
apksignerKeyPassword: '$(keystorePassword)'

我已经尝试了所有我能想到的调试方法,包括管道中的一些 Powershell 脚本以列出二进制文件目录。当我这样做时,$(outputDirectory) 路径扩展到 D:\a\1\b\Release。这里的文件内容包括我的.apk 文件,大小大约为18MB。此文件夹中还有构建中的一些 .dll 和 .pdb 文件。

当我的管道到达 Android 签名任务时,它开始验证 .apk 文件中的文件:

2020-11-23T21:31:32.2526098Z [command]"C:\Program Files (x86)\Android\android-sdk\build-tools\30.0.2\zipalign.exe" -v 4 D:\a\1\b\Release\com.COMPANY.PROJECT.apk.unaligned D:\a\1\b\Release\com.COMPANY.PROJECT.mobileapp.apk
2020-11-23T21:31:32.4654095Z Verifying alignment of D:\a\1\b\Release\com.COMPANY.PROJECT.mobileapp.apk (4)...
2020-11-23T21:31:32.4657624Z 49 AndroidManifest.xml (OK - compressed)
2020-11-23T21:31:32.4665566Z 1359 res/anim/abc_fade_in.xml (OK - compressed)
2020-11-23T21:31:32.4666075Z 1631 res/anim/abc_fade_out.xml (OK - compressed)
2020-11-23T21:31:32.4666429Z 1920 res/anim/abc_grow_fade_in_from_bottom.xml (OK - compressed)

它完成了对文件的所有这些检查(或者它正在做的任何事情),然后事情就崩溃了:

2020-11-23T21:31:32.4904751Z Verification succesful
2020-11-23T21:31:33.3789976Z [command]C:\windows\system32\cmd.exe /D /S /C ""C:\Program Files (x86)\Android\android-sdk\build-tools\30.0.2\apksigner.bat" sign --ks D:\a\_temp\mykeystore.keystore --ks-pass "pass:***" --ks-key-alias aliasname --key-pass "pass:***" --verbose D:\a\1\b\Release\com.COMPANY.PROJECT.apk"
2020-11-23T21:31:41.7116048Z Missing input APK
2020-11-23T21:31:41.7753859Z ##[error]Error: The process 'C:\Program Files (x86)\Android\android-sdk\build-tools\30.0.2\apksigner.bat' failed with exit code 1
2020-11-23T21:31:41.7842464Z ##[section]Finishing: AndroidSigning

此时我不知所措。该错误仅表示缺少输入 APK,但据我所知,APK 文件在那里。我唯一的怀疑是,也许验证 APK 中所有内容的过程会删除原始 APK?

如有任何帮助,我们将不胜感激。在这一点上我很迷茫。我正在关注由我公司的另一个团队设置的 YML 文件,通过查看他们的管道历史,他们似乎对此没有任何问题......

最佳答案

请检查您的密码中是否有&%

如果你没有正确地转义这些字符,你应该会遇到这种问题。

有人通过正确转义解决了密码中的 & 和 %,请引用此链接: Android Signing Task V3.0 fails when password string contains an ampersand

作为解决方法,您还可以尝试使用更简单的密码上传另一个 keystore 。

关于xamarin.forms - Azure Devops 管道 - AndroidSigning 上缺少输入 APK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64977208/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com