我是 xamarin 和移动开发的新手,很难将我的应用部署到实际设备上。每次我尝试在模拟器以外的任何设备上安装时,都会收到 App not installed
错误。我花了很多时间在线讨论类似的问题/问题,但它们都没有帮助,或者至少我无法成功地将它们应用于我的情况,因为绝大多数似乎都适用于在 android studio 工作并手动构建 apk。
我在 VS 2019 中使用 xamarin.forms,然后使用 ADO 管道来构建和签署 .apk 文件。从我的管道的角度来看,事情似乎工作正常。签名步骤应该可以成功签名和验证,但是尝试在 android studio 中调试 .apk 文件时出现以下错误:
Installation did not succeed.
The application could not be installed: INSTALL_PARSE_FAILED_NO_CERTIFICATES
和APK signature verification failed.
运行命令 apksigner verify --print-certs <myapkfile>.apk
,出现以下错误:
DOES NOT VERIFY
ERROR: Missing META-INF/MANIFEST.MF
我不确定为什么我的签名 apk 仍然失败并出现这些错误,并且根据 guide for signing 我没有看到我遗漏的任何东西。
我的目标 android 版本是 Android 10.0(API 级别 29),我的 ADO .yaml 管道中的任务配置如下:
- task: XamarinAndroid@1
inputs:
projectFile: '**/*Droid*.csproj'
outputDirectory: $(Build.ArtifactStagingDirectory)
configuration: '$(buildConfiguration)'
createAppPackage: true
jdkOption: 'JDKVersion'
- task: AndroidSigning@3
inputs:
apkFiles: '**/*.apk'
apksign: true
apksignerKeystoreAlias: OnDeck
apksignerKeystoreFile: 'release.keystore'
apksignerKeystorePassword: $(CredentialPassword)
apksignerKeyPassword: $(CredentialPassword)
我觉得它一定是我遗漏的一些非常小的东西,但我就是想不通。非常感谢任何帮助。
答案 0 :(得分:0)
这个问题是因为在移动设备上安装了相同的版本,但在不同的系统上构建(导致不同的 SHA1 密钥)
解决方案:- 增加版本号并尝试安装。