在将Swift类添加到旧的Xcode项目后,我得到这个错误。

dyld:库未加载:@rpath/libswift_stdlib_core.dylib

我怎样才能使项目再次运行?


当前回答

方案五:

在我的案例中,accws的答案中提到的所有解决方案都非常有用,但没有一个是有效的。我通过在项目目标的“General”部分的“Embedded Binaries”部分中添加我的swift库来解决我的问题。也许这是因为我在我的工作区中包含了我的swift框架?不管它现在编译什么!准备好,斯威夫特,我来了!

其他回答

发生这种情况的原因有很多。刚刚度过了一个有趣的周末,发现了另一个导致这个问题的问题(代码签名的顺序),我想创建一个总结答案,将所有可能的解决方案放在一起:

Add Embedded Content Contains Swift Code to project. You need to set this flag if your app contains Swift code. Clean project. In addition to a Project > Clean you can also delete the DerivedData and Build directories. Look under the Preferences for the location of DerivedData. Build should be in your project folder. Ensure Runpath Search Paths contains @executable_path/Frameworks. Ensure that your certificate contains your Apple Team ID in the OU (Organization Unit) field Apple will add this for you, just revoke your existing distribution certificate and create a new one, download, install on KeyChain, regenerate all provisioning profiles, download those and rebuild. Xcode restart. If everything is basically good, but Xcode hasn't gotten there yet.

这很简单。如果你正在进行自己的命令行构建,你可能会创建自己的.ipa文件来上传。在这种情况下,您需要确保以下内容:

Make sure the version of the Swift files in SwiftSupport/iphoneos is the same as the version in Contents/YourApp.app/Frameworks Because Swift is not yet binary compatible between version, you must ensure these versions are the one that you built your app with. You can find these libraries under /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos. Sign the libraries and frameworks first. You need to codesign the libraries and framework files (under Frameworks in the .app folder) first and then sign the entire .app tree. The .app tree must be signed with an entitlements.plist but not the frameworks.

希望当Swift 3.0问世时,我们不再需要将Swift捆绑到我们的应用程序中,这个问题就会消失。

这些解决方案似乎都不适合我;每成功运行几次之后,它就会再次失败。“嵌入式内容包含Swift代码”标志总是为我设置为“是”。

结果我将Xcode设置为6.3兼容。将其更改为3.2兼容解决了这个问题:

我也遇到过这个问题,只是没有定位libswiftXCTest.dylib。

解决方案是在Build Phases/Link Binary with Library中将XCTest.framework添加到Tests目标中。即使当我试图构建主目标时,我也会得到这个错误。

如果你通过嵌入式二进制文件添加这三个框架,它们也会被添加到链接框架和库中。删除链接框架和库中的三个条目将解决问题。

像重新启动Xcode和重启Mac这样的神奇方法对我不起作用。

同样的问题,对我来说,是Crashlytics/Fabric/Beta/Twitter/不管他们自称上传了一个缺少嵌入式框架的二进制文件。如果我做了一个存档,然后以标准的方式导出一个企业版,它们就很有魅力。