此错误的来源是啥:没有与目标匹配的签名?

Posted

技术标签:

【中文标题】此错误的来源是啥:没有与目标匹配的签名?【英文标题】:What is the source of this error: does not have a signature matching the target?此错误的来源是什么:没有与目标匹配的签名? 【发布时间】:2019-08-20 15:14:35 【问题描述】:

我正在尝试使一些 uitests 工作。我正在使用 Visual Studio 2017。我正在使用 .net c# xamarin 开发跨平台应用程序。它不是表单项目。

我已经尝试使用和不使用签名的 apk 部署我的应用程序,但仍然会触发错误。首先,我遇到了这个问题:运行 Xamarin UI Tests for android 时等待 ClearAppData2 的结果超时,但我意识到我忘记包含 Xamarin.UITest 包。当我添加这个时,我得到了下面的错误。在adb提示下,我可以成功卸载com.xxx.yyy和com.xxx.yyy.test。我觉得我的 uitest 集正在尝试打开 com.xxx.yyy.test,但我的手机上没有类似的东西(我什么都看不到)。我已经在我的应用程序中寻找任何 com.xxx.yyy.test 定义,但什么也没有。错误被抛出:

return ConfigureApp
    .Android
    .Debug()
    .EnableLocalScreenshots()
    .InstalledApp("com.xxx.yyy")
    .StartApp();

我正在使用这些包:

<PackageReference Include="NUnit" Version="3.12.0" />
<PackageReference Include="NUnit3TestAdapter" Version="3.14.0" />
<PackageReference Include="UITests.Helpers.Uno" Version="1.3.0" />
<PackageReference Include="Uno.Injectable" Version="1.32.0" />
<PackageReference Include="Uno.MonoAnalyzers" Version="1.0.0">
   <PrivateAssets>all</PrivateAssets>
   <IncludeAssets>runtime; build; native; contentfiles; 
   analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="Uno.SourceGenerationTasks" Version="1.31.0" />
<PackageReference Include="Xamarin.UITest" Version="3.0.3" />

抛出的错误:

消息:OneTimeSetUp:System.Exception:执行失败: C:\Program Files (x86)\Android\android-sdk\platform-tools\adb.exe -s ZY323RTCJ8外壳式仪表 com.xxx.yyy.test/sh.calaba.instrumentationbackend.ClearAppData2 - 退出 代码:1 java.lang.SecurityException:权限拒绝:开始 仪器仪表 ComponentInfocom.xxx.yyy.test/sh.calaba.instrumentationbackend.ClearAppData2 从 pid=8893, uid=8893 不允许,因为包 com.xxx.yyy.test 没有与目标 com.xxx.yyy 匹配的签名

【问题讨论】:

【参考方案1】:

您设备上的应用 com.xxx.yyy 未使用与测试应用 com.xxx.yyy.test 相同的证书进行签名。

像这样更改您的代码:

return ConfigureApp
    .Android
    .KeyStore("pathToKeyStore", "storePassword", "keyPassword", "keyAllias")
    .Debug()
    .EnableLocalScreenshots()
    .InstalledApp("com.xxx.yyy")
    .StartApp();

【讨论】:

我完全按照你说的做了,但还是失败了:System.Exception : Failed to execute: C:\Program Files\***\jarsigner.exe -sigalg SHA1withRSA -digestalg SHA1 -signedjar "C:\Users\user\AppData\Local\Temp\uitest\a-287A94...D0807\23248\SignedTestServer.apk" -storepass passw -keypass passw -keystore "C:\...\Certificate\Mycompany.keystore" "C:\Users\user\AppData\Local\Temp\uitest\a-287A...D0807\TestServer.apk" ""alias"" - exit code: 1

以上是关于此错误的来源是啥:没有与目标匹配的签名?的主要内容,如果未能解决你的问题,请参考以下文章

错误 TS2346:提供的参数与调用目标的任何签名都不匹配

BigQuery 错误:运算符没有匹配的签名 >=

Xcode 错误:没有具有与捆绑标识符匹配的有效签名身份的配置文件

Amazon S3 - 如何修复“我们计算的请求签名与签名不匹配”错误?

收到 IDX10501 的错误信息:签名验证失败。使用 Azure AD 时无法匹配密钥

代码签名错误:身份“iPhone 开发人员:x Xxxxx”与任何配置文件中的任何身份都不匹配