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源文件。 以下为我解决了这个问题:
- 链接:
RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
- 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(企业)证书时,我遇到了同样的问题。
以下步骤为我解决了这个问题。
- 创build并使用新的证书和移动设备。
(参考AIRSIGN的博客 ) - 将
Runpath Search Paths
设置为:$(inherited) @executable_path/Frameworks
。
(参考马特的答案 )
解决scheme6:
在我们的案例中,企业分销证书已被撤销。 生成一个新的证书并更新configuration文件解决了问题。
(这个错误似乎有很多不同的原因,希望这可以帮助别人。)
我面临同样的问题,设置正确的代码标识身份解决了问题(生成设置 – >代码签名标识)。
按照Apple技术问题 “在iOS 8发布后创build的所有企业和标准iOS开发人员证书都有适当位置的新Team ID字段,以允许Swift语言应用程序运行”
如果您通过embedded式二进制文件添加三个框架,则它们也将被添加到链接框架和库中。 删除链接的框架和库中的三个条目将解决问题。
神奇的方法,如重新启动Xcode和重新启动Mac不起作用。
尝试按住Alt键,然后转到产品 – >清理生成文件夹…
希望它会帮助别人..
造成这种情况的原因很多。 刚刚花了一个有趣的周末find另一个导致这个问题(代码签名顺序),我想创build一个总结答案,将所有可能的解决scheme结合在一起:
- 添加embedded的内容包含Swift代码到项目。 如果你的应用包含Swift代码,你需要设置这个标志。
- 清洁项目 。 除了“ 项目”>“清理”外,还可以删除“
DerivedData
和“Build
目录。 查看DerivedData
位置的首选项 。Build
应该在你的项目文件夹。 - 确保运行pathsearchpath包含
@executable_path/Frameworks
。 - 确保您的证书在OU(组织单位)字段中包含您的Apple Team ID。Apple将为您添加此证书,只需撤销您现有的分发证书并创build一个新的分发证书,下载,安装在KeyChain上,重新生成所有configuration文件,重build。
- Xcode重新启动。 如果一切都基本上好,但Xcode还没有到那里。
这是容易的东西。 如果你正在做自己的命令行构build,你可能正在创build自己的.ipa
文件来上传。 在这种情况下,您需要确保以下内容:
- 请确保
SwiftSupport/iphoneos
中的Swift文件的版本与Contents/YourApp.app/Frameworks
的版本相同因为Swift在版本之间还不是二进制兼容的,所以您必须确保这些版本是您用。 您可以在/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos
下find这些库。 - 首先签署库和框架 。 您需要首先对库和框架文件(位于
.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 Code
和Runpath Search Paths
进行了更改。
我已经安装了优胜美地,没有任何进一步的变化,它开始工作。
同样的问题,对我来说是Crashlytics / Fabric / Beta / Twitter /无论他们自己上传一个缺lessembedded式框架的二进制文件。 如果我制作了一个档案,然后以标准的方式导出了一个企业版本,他们就发挥了魅力。
我的环境:Cocos2d 2.0,Box2d,Objective C
除了做上面的其他答案,我终于去了常规选项卡,并使WatchKit可选。
经过几个月和几个月的尝试一切在这里…疯狂的定义…在一个新的Mac用户下开始Xcode解决了它对我来说。
我删除了〜/ Library / Developer / *并重新安装了Xcode,所以不知道还有什么格式可以使它工作。