Swift stdlib 工具错误

Swift stdlib tool Error

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

Swift stdlib tool Error

编译日志的结尾如下所示:

/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'
}

非常奇怪的是,如果我将包含项目的文件夹复制到我的桌面,它确实编译没有错误。如果我将它复制到其他地方,它会出错。来回移动了几次验证,终于在第三次移动后,在桌面上也报错了。

有什么想法吗?

非常感谢。

这些症状的不确定性让我认为这是 Xcode 的 DerivedData 文件夹中过时数据的问题。

删除 /Users/..../Library/Developer/Xcode/DerivedData/ 的内容,这应该可以解决您的问题。

删除此文件夹的内容没有问题,因为 Xcode 将在丢失时重新创建所需的内容。

如果清除 DerivedData 对您不起作用,请尝试重新下载所有配置文件,然后确保您的认证中有 iOS 开发 .

您可以通过检查以下内容来确保:打开 Xcode → Xcode → 首选项 → 帐户。在列表中点击你的appleId,点击下载所有配置文件,等待它下载所有配置文件。然后点击管理认证→点击+标志→iOS开发.

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

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

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

我阅读了一些关于同一主题的堆栈溢出查询,发现其中一个建议重新启动 Mac。

这对我有用。

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

简单的重启就解决了我的问题。

在我的特殊情况下,删除 DerivedData 目录和重新启动计算机都没有用。

我相信我在遇到 Swift stdlib tool Error 之前遇到的问题起源于当我被 Xcode 提示输入我的系统/root 密码以允许访问一个 Apple ID(免费)配置文件时在 Keychain 中输入密码,但我点击了 Allow 按钮。

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

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

为了解决这个问题,我做了以下事情:

  1. 根据此 Apple 文档删除了我的 登录钥匙串 Create a new login keychain, if necessary
  2. 删除了保存在 Xcode 中的我的 Apple ID(免费)配置文件(即 Preferences > Accounts ),因为它与我的旧登录钥匙串相关联。
  3. 重新启动了我的电脑。
  4. 重新创建了我的 Apple ID(免费)配置文件(这将再次提示您输入系统密码以访问钥匙串中的密钥。这次输入密码,而不是单击 Allow 按钮点击 Always Allow 按钮。不知道为什么会这样,但它做到了。

对此解决方案的一个主要警告:

删除您的登录钥匙串将导致您的计算机将您从许多您以前可能保存过密码的应用程序中注销。例如,我使用 Spark 邮件应用程序客户端,它导致我拥有 re-enter 我的个人 e-mail (Gmail) 帐户密码,它还让我退出了 Evernote 应用程序。 所以,请注意! 不过,这对我来说没什么大不了的,因为我可以简单地重新登录。最坏的情况下这很烦人。

我成功的3个步骤:

1) 重启设备

2) 重启Mac

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

与 racl101 () 一样,删除 DerivedData 目录或重新启动计算机都没有解决问题。

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

  1. 关闭Xcode
  2. 更改登录钥匙串密码(不是当前密码)
  3. 重新打开您的 Xcode 项目并再次尝试编译。当系统提示您输入密码时 select 'Always Allow'

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

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

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

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

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