Swift stdlib工具错误

时间:2016-11-12 21:08:00

标签: swift xcode xcode8.1

我在使用Xcode 8.1和Swift 3进行编译时出现此错误:

  

Swift stdlib工具错误

编译日志的结尾如下:

/Users/..../Library/Developer/Xcode/DerivedData/.../Build/Products/Debug/.../Contents/Frameworks/libswiftCore.dylib: replacing existing signature
/Users/..../Library/Developer/Xcode/DerivedData/.../Build/Products/Debug/.../Contents/Frameworks/libswiftCore.dylib: CSSMERR_CSP_INVALID_CONTEXT_HANDLE
In architecture: x86_64
Probing signature of /Users/..../Library/Developer/Xcode/DerivedData/.../Build/Products/Debug/.../Contents/Frameworks/libswiftXPC.dylib
  /usr/bin/codesign '-r-' '--display' '/Users/..../Library/Developer/Xcode/DerivedData/.../Build/Products/Debug/.../Contents/Frameworks/libswiftXPC.dylib'
error: Task failed with exit 1 signal 0 {
    /usr/bin/codesign '--force' '--sign' '-' '--verbose' '/Users/..../Library/Developer/Xcode/DerivedData/.../Build/Products/Debug/.../Contents/Frameworks/libswiftCore.dylib'
}

非常奇怪的是,如果我将带有项目的文件夹复制到我的桌面,它会编译而不会出现错误。如果我将其复制到别处,则会出错。来回移动几次以验证,最后在第三次移动后,它也在桌面上出错。

有什么想法吗?

非常感谢提前。

7 个答案:

答案 0 :(得分:17)

我今天早些时候遇到了同样的问题。

我是Xcode和swift的新手,刚刚开始尝试。在其中一个教程中,它建议编译模拟器,然后尝试为您的设备进行编译。

当我为我的设备编译时,它询问了我的钥匙串密码,我第一次尝试将密码弄错了,假设没有必要点击拒绝访问钥匙串按钮。

我在同一主题上读了几个堆栈溢出查询,发现一个建议重新启动Mac。

这对我有用。

  1. 重启Mac
  2. 打开您的Xcode项目
  3. 选择您的设备作为目标
  4. 编译
  5. 输入钥匙串密码,然后点击允许或始终允许

答案 1 :(得分:5)

如果清除DerivedData不适合您,请尝试重新下载所有配置文件,然后确保您的认证中包含 iOS开发

您可以通过以下方式确认:打开Xcode→Xcode→首选项→帐户。单击列表中的appleId,单击下载所有配置文件,然后等待它下载所有配置文件。然后单击管理认证→单击 + 签名→ iOS开发

答案 2 :(得分:5)

简单的重启为我解决了这个问题。

答案 3 :(得分:2)

在我的特定情况下,既不删除DerivedData目录也不重启我的计算机。

在我通过Xcode提示输入系统/ root密码以允许访问Keychain中的密钥时,我在创建Apple ID(免费)配置文件时遇到Swift stdlib tool Error时遇到问题我发现了我的密码,但我点击了 允许 按钮。

这导致Xcode再次提示我输入密码,无论我输入多少次都不接受它。然后,我错误地按下Esc键,假设Xcode第一次接受了我的密码,但只是只是故障。

然而,我错了,从那时起它从来没有提示我输入我的钥匙串密码,但是,每次我尝试构建并运行它时,都会抱怨Swift stdlib tool Error错误我试图在我的iOS设备上运行我的应用程序。

为了解决这个问题,我做了以下几点:

  1. 根据此Apple文档删除了登录密钥链Create a new login keychain, if necessary
  2. 删除了我保存在Xcode中的Apple ID(免费)配置文件(例如,首选项>帐户),因为它与我的旧登录密钥链相关联。
  3. 重新启动了我的电脑。
  4. 重新创建了我的Apple ID(免费)配置文件(这将再次提示您输入系统密码以访问钥匙串中的密钥。这次输入密码,而不是点击 允许< / em> 按钮点击 始终允许 按钮。不确定为什么会有效,但确实如此。
  5. 此解决方案的一个主要警告:

    删除您的登录密钥链将导致您的计算机将您从许多以前保存过密码的应用程序中注销。例如,我使用Spark邮件应用程序客户端,它导致我重新输入我的个人电子邮件(Gmail)帐户密码,它也让我退出了Evernote应用程序。 所以,请注意! 然而,在我的事业中,这并不是什么大不了的事,因为我可以再次登录。它在最糟糕的时候很烦人。

答案 4 :(得分:2)

与racl101(https://stackoverflow.com/a/49266114/3612595)一样,删除DerivedData目录或重新启动计算机都不能解决问题。

为避免删除登录钥匙串,以下内容为我解决了该问题:

  1. 关闭Xcode
  2. 将登录钥匙串密码更改为当前密码之外的其他密码
  3. 重新打开您的Xcode项目,然后尝试再次编译。当提示您输入密码时,选择“始终允许”

如果您希望将登录钥匙串密码更改回原始值,请重复此过程。

答案 5 :(得分:1)

我的成功3步:

1)重启设备

2)重启Mac

3)删除文件夹/ Users / YOR-NAME / Library / Developer / Xcode / DerivedData /(在错误报告中列出)

答案 6 :(得分:1)

今天早些时候我遇到了同样的问题。

我是Xcode和Swift的新手,刚刚开始尝试。在第一批教程之一中,它建议编译一个模拟器,然后尝试为您的设备编译。

当我为设备编译时,它要求输入钥匙串密码,这是我第一次尝试输入错误密码时,假设我没有必要单击拒绝访问钥匙串按钮的情况。

  • 使用新的捆绑包标识符来创建新证书。之后
  • 输入您的钥匙串密码,默认情况下是您的系统密码