Xamarin.iOS应用程序验证失败:无法验证代码签名

8
当我尝试在真实设备上运行我的应用程序时,为什么会出现这个错误?
ApplicationVerificationFailed: Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.ttjwEf/extracted/DSP.IOS.app : 0xe8008016 (The executable was signed with invalid entitlements.)
error MT1006: Could not install the application '/Users/macbookpro/Documents/gitProject/DSPMobileGit/DSP.Mobile/DSP.iOS/DSP.IOS/bin/iPhone/Debug/device-builds/iphone6.2-9.3.5/DSP.IOS.app' on the device 'Mohamed’s iPhone': Your code signing/provisioning profiles are not correctly configured. Probably you have an entitlement not supported by your current provisioning profile, or your device is not part of the current provisioning profile. Please check the iOS Device Log for details (error: 0xe8008016).

我运行我的应用程序所做的步骤如下:

第一步:我在Xcode中创建了一个与捆绑名称相同的项目,并让Xcode处理Provisioning

但我尝试在Visual Studio中运行时失败了

第二步:我创建了具有通配符ID的手动provisioning,但它仍然无法运行

我注意到每次设置签名标识和provisioning profile时,当我返回屏幕时,我发现它又变回了none

这可能是原因

enter image description here


1
首先 - 如果应用程序已存在于您的手机上,请在构建之前将其删除。其次 - 检查新的配置文件是否包括您的设备。 - Taier
我删除了应用程序,我的授权包括我的设备。我注意到了一些问题,我会更新我的答案,请您查看。 - Mina Fawzy
1
这意味着您的捆绑标识与配置文件不匹配,或者配置文件与您用于生成该配置文件的钥匙链密钥不匹配。如果您在一台机器上生成它,然后现在尝试在另一台机器上构建,就可能会发生这种情况。 - Taier
2个回答

10

使用 Visual Studio for Mac 2019

首先,确定问题是否与权限有关。找到“部署到设备”选项卡,查看完整的消息,以“ApplicationVerificationFailed:Failed to verify code signature of ...”开头。

寻找:

......可执行文件使用无效的权限签名。

在这种情况下,请参见https://dev59.com/ylgQ5IYBdhLWcg3wWCnP#43055084


以下答案适用于另一种可能的情况

......此设备未找到有效的配置文件

对于 Visual Studio for Mac + Xamarin iOS(或 Xamarin Forms 部署到 iOS 的新版本):

  • 通过 USB 线将手机连接到 Mac。
  • 手机上弹出窗口,选择“信任”此计算机。
  • 在 VS 中打开 Info.plist。
  • 确保在窗格底部选择了“应用程序”选项卡。
  • 选择“自动配置文件”。
  • 按照说明操作。

当成功时,您会看到(在“自动配置文件”单选按钮下):

  • Apple ID:your-apple-id-email
  • Team:your-company-name-or-your-developer-name
  • (绿色勾号)准备将应用部署到连接的设备。

重要提示:

  • 即使您以前为不同的设备设置了自动配置文件,仍需要在连接此新设备后打开 Info.plist / 应用程序选项卡。 (每次针对每个设备执行一次此操作后,可以切换附加的设备,而无需重复执行。)
  • 如果 Xcode 以前从未见过该设备,则可能需要花费几分钟才能验证该设备并将其附加到 Xcode。 如果您更喜欢看到 Xcode 给出有关正在进行的操作的消息(并旋转忙碌指示器),则请参见以下段落。速度不会更快,但显然会发生一些有用的事情。 (在较旧的 Xcode 上,人们报告了延迟达 10-15 分钟的延迟。)

如果无法让它识别您的手机,请搜索说明,以打开 XCode 并将您的手机添加为 XCode 已知的设备(XCode 菜单窗口 / 设备和模拟器 / 设备选项卡)。也就是说,首先在 XCode 中使其正常工作可能更容易,然后返回 VS,断开并重新连接电缆到电话机,再次尝试上述说明。


使用 Visual Studio (Windows) 2022

个人而言,我总是先使用 XCode 将手机/平板电脑连接到 Mac 上,并让其被识别。请参见上面的说明。

然后:

  • 将设备连接到电脑。
  • 自动配置位于YourApp.iOS / Properties / iOS Bundle Signing中。
  • 选择团队。

如果运行成功,则显示“自动配置已成功完成”。


可选:

  • 从PC断开设备连接,将其连接到Mac-应在Windows上的VS下列在“远程设备”下。

TBD:不确定为什么当它连接到PC时无法将其列为本地设备。


2
我在一个Xamarin.iOS项目中遇到了同样的问题。我找到了一个解决方法。原因是从Xamarin.Swift4包4.0.0.1升级到4.0.0.2。
当我降级回到4.0.0.1时,问题就不存在了。
我在github上创建了一个问题报告:https://github.com/Flash3001/Xamarin.SwiftSupport/issues/25。最初的回答。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接