Xamarin 无法构建到设备 - 工具退出,代码:1。输出:错误:在钥匙串中找不到指定的项目

Posted

技术标签:

【中文标题】Xamarin 无法构建到设备 - 工具退出,代码:1。输出:错误:在钥匙串中找不到指定的项目【英文标题】:Xamarin cannot build to device - Tool exited with code: 1. Output: error: The specified item could not be found in the keychain 【发布时间】:2017-04-18 21:48:56 【问题描述】:

我正在尝试在 Xamarin Mac 上的 Debug|iPhone 配置中构建 ios 应用程序,但我得到:

/Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets: Error: Tool exited with code: 1. Output: error: The specified item could not be found in the keychain.

这一切都始于我不得不重置我的默认钥匙串并丢失了我的证书。我尝试通过以下方式修复它:

手动创建新证书(确保我在按照建议 here 向证书颁发机构请求证书时拥有“Apple Worldwide Developer Relations 证书颁发机构”) 使用 xcode 8.3.1 创建证书(将此证书导出到另一台机器上可以让我在该机器上正常构建) 从旧钥匙串导入证书(每次创建新证书时,我都会确保更新和下载配置文件) 从另一台计算机上的其他用户导出工作证书并将其导入我的计算机上 卸载 Xamarin studio,删除here 提到的文件夹,并安装 Xamarin Studio 6.1.3 + Xamarin.iOS 10.4.0.123(之前使用的是 6.1.3 + 10.2.1.5) 卸载 Xcode 8.1 并安装 Xcode 8.3.1 安装 Visual Studio for mac(这给了我一个不同的错误“EnsureBindingRedirects 任务意外失败” - 可能是一个单独的错误)

在另一台机器上使用已知的工作证书/配置文件组合时构建失败的事实使我认为 Xamarin 在进行构建时遇到了查找证书的问题,即使它看到了证书和配置文件项目选项 -> iOS 捆绑签名。钥匙串中的某个地方也可能存在问题。

对此的任何帮助将不胜感激。

【问题讨论】:

【参考方案1】:

我通过以下操作解决了这个问题:

    security dump-keychain -d login.keychain 列出我钥匙串中的所有项目

    注意到钥匙串访问中没有显示额外的证书

    使用security delete-identity删除了此项

    diskutil resetUserPermissions / $(id -u) 并重新启动了我的 Mac

我不确定第 1-3 步是否必要,所以如果您遇到此问题,我会先尝试第 4 步,看看是否可行。

【讨论】:

【参考方案2】:

我在 Mac 上使用 Visual Studio,我的解决方案是在 Visual Studio 首选项中注销 Apple 开发人员帐户后关闭 Visual Studio 并重新启动它。

【讨论】:

以上是关于Xamarin 无法构建到设备 - 工具退出,代码:1。输出:错误:在钥匙串中找不到指定的项目的主要内容,如果未能解决你的问题,请参考以下文章

将IOS应用程序安装到使用Xamarin在VS中构建的设备时出错

为啥我的 Xamarin.Android 项目不能在启用 Proguard 的情况下构建:“java.exe”退出代码 1

使用 Xamarin 将 IOS 应用程序安装到在 VS 中构建的设备时出错

工具栏项目未以 xamarin 形式显示

error MSB6006: “aapt.exe”已退出,代码为-1073741819

Xamarin.UITests Android 设备未检测到或不工作