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

在将一个Swift类添加到旧的Xcode项目后出现此错误。

dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib

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

对于我以前的解决scheme没有工作。 我们发现Build Settings中有一个标志ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES (在早期版本中为“embedded式内容包含Swift代码”)需要设置为YES。 这是默认的NO!

如果在开始使用Swift的Objective-C项目转换过程中发生错误,则会发生此错误。 问题是链接器的构build设置从来没有正确configuration,所以你必须手工完成。 查找“运行pathsearchpath”构build设置,并将其设置为:

 $(inherited) @executable_path/Frameworks 

在这里输入图像说明

编辑:我还应该补充说,最近出现了一些由其他东西引起的错误 – 苹果公司在Xcode 6.1或6.1.1版本中对Swift本身进行了修改。 唯一的解决办法似乎是退出Xcode,破坏钥匙串访问中的证书,去会员中心,删除所有的证书和configuration文件(除了存储中的应用程序的configuration文件 – 你不能删除它们),然后启动整个证书请求过程从头开始。

我不太确定为什么这个问题是downvoted,我也有这个问题,当我第一次尝试使用Swift与现有的项目。 一个Xcode重启也解决了这个问题。

我在这个问题上search了很久。 造成这个问题的原因有几个。

如果您在Objectice C项目中遇到Swift代码/库,您应该尝试解决scheme1-2-3

如果您正在使用新的Swift项目解决此问题,解决scheme4将最适合您。

解决scheme1:

重新启动Xcode,然后电脑和iPhone

解决scheme2:

转到项目构build设置并设置Always Embed Swift Standard Libraries (以前Embedded Content Contains Swift Code )标志为YES

解决scheme3:

转到项目构build设置并将@executable_path/Frameworks添加到“ Runpath Search Paths选项

解决scheme4:

如果以上都不起作用,应该这样做。 在AirSign的post中提到,苹果似乎是忍者补丁证书

InHouse证书

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, O=Company Name, C=FR

他们添加了一个名为OU的新字段

Subject: UID=269J2W3P2L, CN=iPhone Distribution: Company Name, OU=269J2W3P2L, O=Company Name, C=FR

所以你应该重新创build证书和configuration

在我的情况下,我试图导入一个自定义的框架,并得到类似的错误。 原来,我必须在embedded式二进制文件中导入框架,而不是导入链接框架和库。

embedded式二进制文件位于“项目设置” – >“常规”下

对于在Adhoc / Enterprise发行版中遇到此问题的开发人员,

从dev门户创build生产证书,然后重新生成分发configuration文件。 在Mac上下载并安装它们。 确保您在Xcode版本设置中select了正确的configuration文件并重build您的应用程序。

来源: https : //devforums.apple.com/message/1022908#1022908

解决scheme5:

在我的情况下,在答复中提到的所有解决scheme都非常有帮助,但没有一个工作。 我在项目目标的“常规”部分的“embedded式二进制文件”一节中添加了我的swift库,从而解决了我的问题。 也许这是由于我在我的工作空间中包含了我的swift框架? 无论它现在编译! 准备好Swift,我来了!

Xcode的一个简单的重新启动解决了我的问题。

我有一个Obj-C项目,我开始添加swift源文件。 以下为我解决了这个问题:

  1. 链接: RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
  2. Swift编译器 – 代码生成: EMBEDDED CONTENT CONTAINS SWIFT = YES

我刚刚从模板Xcode 6.3创build了一个新项目,并将项目设置与我原来的原始项目进行了比较。

对我来说,这个问题是由于我的苹果全球开发者关系authentication机构无效。

从这里下载: https : //developer.apple.com/certificationauthority/AppleWWDRCA.cer

将其拖放到Keychain Access中,清理项目并运行。

我尝试了上面给出的所有答案,没有任何工作。

最后在更新到优胜美地后工作

我有这个问题使用具有生产证书的Ad Hoc(或企业)mobileprovision。 切换到开发证书和mobileprovision解决了这个问题。

我的项目是一个带有一些Objective-C类的Swift项目。 在签署旧的inHouse(企业)证书时,我遇到了同样的问题。

以下步骤为我解决了这个问题。

  1. 创build并使用新的证书和移动设备。
    (参考AIRSIGN的博客 )
  2. Runpath Search Paths设置为: $(inherited) @executable_path/Frameworks
    (参考马特的答案 )

解决scheme6:

在我们的案例中,企业分销证书已被撤销。 生成一个新的证书并更新configuration文件解决了问题。

(这个错误似乎有很多不同的原因,希望这可以帮助别人。)

我面临同样的问题,设置正确的代码标识身份解决了问题(生成设置 – >代码签名标识)。

按照Apple技术问题 “在iOS 8发布后创build的所有企业和标准iOS开发人员证书都有适当位置的新Team ID字段,以允许Swift语言应用程序运行”

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

神奇的方法,如重新启动Xcode和重新启动Mac不起作用。

尝试按住Alt键,然后转到产品 – >清理生成文件夹…

希望它会帮助别人..

造成这种情况的原因很多。 刚刚花了一个有趣的周末find另一个导致这个问题(代码签名顺序),我想创build一个总结答案,将所有可能的解决scheme结合在一起:

  1. 添加embedded的内容包含Swift代码到项目。 如果你的应用包含Swift代码,你需要设置这个标志。
  2. 清洁项目 。 除了“ 项目”>“清理”外,还可以删除“ DerivedData和“ Build目录。 查看DerivedData位置的首选项Build应该在你的项目文件夹。
  3. 确保运行pathsearchpath包含@executable_path/Frameworks
  4. 确保您的证书在OU(组织单位)字段中包含您的Apple Team ID。Apple将为您添加此证书,只需撤销您现有的分发证书并创build一个新的分发证书,下载,安装在KeyChain上,重新生成所有configuration文件,重build。
  5. Xcode重新启动。 如果一切都基本上好,但Xcode还没有到那里。

这是容易的东西。 如果你正在做自己的命令行构build,你可能正在创build自己的.ipa文件来上传。 在这种情况下,您需要确保以下内容:

  1. 请确保SwiftSupport/iphoneos中的Swift文件的版本与Contents/YourApp.app/Frameworks的版本相同因为Swift在版本之间还不是二进制兼容的,所以您必须确保这些版本是您用。 您可以在/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos下find这些库。
  2. 首先签署库和框架 。 您需要首先对库和框架文件(位于.app文件夹中的“框架”下)进行.app ,然后对整个.app树进行签名。 .app树必须用entitlements.plist不是框架签名。

希望当Swift 3.0出来,我们不再需要捆绑Swift与我们的应用程序,整个问题将消失。

升级到最新版本的OS X(优胜美地)

经过数小时的试验和错误,我来解决这个问题。 – 如果这适用于你的情况当然。

我有同样的问题,直到我将我的Mac OS X从小牛升级到优胜美地。 – 它解决了我的问题,希望它修复你的问题

我尝试了所有在网上find的解决scheme,包括苹果和新的证书。 没有成功。

经过6个月的尝试,我可以运行xcode的唯一方法就是在我的macbook上创build一个新帐户。

通常,如果将此库添加到“构build阶段”中的“复制文件”段,此错误将消失。

如果以上所有都不能帮助你,你真的感到沮丧…尝试所有的最好的技巧: Clean ,只是也要Clean Build Folder 。 :)希望它可以帮助别人!

将框架添加为“embedded式二进制”而不是“链接的框架和库” – 修正了我的问题。

我还将embedded式内容包含Swift代码标志设置为YES。

这些解决scheme似乎没有一贯为我工作; 在每一次成功运行后,都会再次失败。 “embedded的内容包含Swift代码”标志总是被设置为YES。

原来我将Xcode设置为6.3兼容。 改回到3.2兼容解决了它:

我也遇到过这个问题,只是找不到libswiftXCTest.dylib

解决scheme是将XCTest.framework添加到testing目标中,在Build Phases/Link Binary with Library XCTest.framework Build Phases/Link Binary with Library 。 即使当我试图build立主要目标时,我也遇到了这个错误。

当我使用Swift语言将一个新的Today扩展目标添加到一个旧的项目时,就显示出来了。 通过将项目更新为推荐的设置很容易修复。 Xcode 6.0.1

我使用Mavericks,Xcode 6.1.1,在使用iOS 8.1.1的iPhone5上testing了相同的问题。 我尝试了所有可能的解决scheme,包括新的证书和configuration文件,但没有任何帮助。 我在项目级别和目标级别对Embedded Content Contains Swift CodeRunpath Search Paths进行了更改。

我已经安装了优胜美地,没有任何进一步的变化,它开始工作。

同样的问题,对我来说是Crashlytics / Fabric / Beta / Twitter /无论他们自己上传一个缺lessembedded式框架的二进制文件。 如果我制作了一个档案,然后以标准的方式导出了一个企业版本,他们就发挥了魅力。

我的环境:Cocos2d 2.0,Box2d,Objective C

除了做上面的其他答案,我终于去了常规选项卡,并使WatchKit可选。

目标:一般:链接的框架和库:WatchKit.framework:可选

经过几个月和几个月的尝试一切在这里…疯狂的定义…在一个新的Mac用户下开始Xcode解决了它对我来说。

我删除了〜/ Library / Developer / *并重新安装了Xcode,所以不知道还有什么格式可以使它工作。