此错误的来源是啥:没有与目标匹配的签名?
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
以上是关于此错误的来源是啥:没有与目标匹配的签名?的主要内容,如果未能解决你的问题,请参考以下文章
Xcode 错误:没有具有与捆绑标识符匹配的有效签名身份的配置文件
Amazon S3 - 如何修复“我们计算的请求签名与签名不匹配”错误?