错误的原因
当有关项目查找有效的代码签名凭据但找不到凭据时,会出现此错误消息。 在物理 iOS 设备上进行测试和部署需要代码签名;临时和 App Store 版本也需要。
如果正在从 Windows 上的 Visual Studio 生成并尝试使用分发配置文件和证书进行生成,但无远程设备或连接到 Mac 生成主机的物理设备(已选为目标设备),则可能会发生这种情况。 如果有本地设备或连接到所选 Windows 电脑的设备,则即使它安装在 Mac 上,生成也无法找到分发证书。
预配设备
如果以前尚未预配 iOS 设备,以下指南将引导你完成完整的分步过程:设备预配指南
使用 iOS 模拟器时出现 Bug
注意
此问题已在最新版本的 Xamarin for Visual Studio 中解决。 但是,如果问题是在软件的最新版本上出现的,请提交新的 bug 并附上完整的版本控制信息和生成日志输出记录。
Xamarin.Visual Studio 3.11 中有一个 bug,导致 Xamarin.Forms 模板中的 iOS 项目将 codeign Entitlements.plist 添加到模拟器生成;有效阻止使用模拟器进行测试。
修复方法
可以从 .csproj 文件的调试版本中删除<CodesignEntitlements>
标志以解决该问题。 你可以按如下所示进行操作:
警告
.csproj 文件中的错误可能会中断项目,因此最好先备份文件,然后再尝试这样做。
- 右击解决方案窗格中的 iOS 项目,然后选择“卸载项目”
- 再次右击项目,然后选择“编辑[ProjectName].csproj”
- 找到 Debug PropertyGroups,它们应从如下所示的标志开始:
- 调试:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|iPhoneSimulator' ">
- 发布:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|iPhoneSimulator' ">
- 调试:
- 在使用模拟器的每个生成中,删除或注释禁止以下属性:
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
- 重新加载项目,你应该能够部署到模拟器。
后续步骤
如需进一步的帮助,请与我们联系,或者,如果在使用上述信息后仍然存在此问题,请参阅 Xamarin 有哪些可用的支持选项?,了解有关联系人选项、建议以及如何在需要时提交新 Bug 的信息。