将Swift类添加到旧的Xcode项目后,我收到此错误。
dyld: Library not loaded: @rpath/libswift_stdlib_core.dylib
如何让项目再次运行?
对我来说,以前的解决方案都没有奏效。我们发现在Build Settings中有一个标志ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
(在早期版本中:“Embedded Content包含Swift Code”)需要设置为YES。默认是NO!
我尝试了上面给出的所有答案,没有任何效果。
最后更新到约塞米蒂后工作
我有一个Obj-C项目,我开始添加swift源文件。以下为我解决了这个问题:
RUNPATH SEARCH PATHS = $(inherited) @executable_path/Frameworks
EMBEDDED CONTENT CONTAINS SWIFT = YES
我刚刚从模板Xcode 6.3创建了一个新项目,并将项目设置与我原来的原始项目进行了比较。
尝试按住Alt,然后转到产品 - >清理构建文件夹...
希望它会帮助某人..
发生这种情况的原因很多。刚刚度过了一个有趣的周末,找到了导致这个问题的另一个问题(代码签名的顺序),我想创建一个汇总答案,将所有可能的解决方案结合在一起:
DerivedData
和Build
目录。在首选项下查看DerivedData
的位置。 Build
应该在你的项目文件夹中。@executable_path/Frameworks
。这很简单。如果您正在进行自己的命令行构建,则可能正在创建自己的.ipa
文件以进行上载。在这种情况下,您需要确保以下内容:
SwiftSupport/iphoneos
中的Swift文件版本与Contents/YourApp.app/Frameworks
中的版本相同因为Swift在版本之间尚未兼容,所以必须确保这些版本是您构建应用程序的版本。您可以在/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos
下找到这些库。codesign
库和框架文件(在Frameworks
文件夹中的.app
下),然后签署整个.app
树。 .app
树必须用entitlements.plist
签名,但不能签署框架。希望当Swift 3.0问世时我们不再需要将Swift与我们的应用程序捆绑在一起,整个问题就会消失。
我使用带有生产证书的Ad Hoc(或企业)mobileprovision遇到了这个问题。切换到开发证书和mobileprovision解决了这个问题。
我的项目是一个带有一些Objective-C类的Swift项目。使用旧的inHouse(企业)证书签名时遇到了同样的问题。
以下步骤为我解决了这个问题。
Runpath Search Paths
构建设置为:$(inherited) @executable_path/Frameworks
。
(参考matt’s answer)解决方案6:
在我们的案例中,企业分发证书已被撤销。生成新证书并更新配置文件修复了该问题。
(这个错误似乎有很多不同的原因。希望这有助于某人。)
我遇到了同样的问题,设置正确的代码符号标识解决了问题(Build settings-> Code Signing Identity)。
根据Apple technical question“iOS 8发布后创建的所有企业级和标准iOS开发人员证书都在适当的位置使用新的Team ID字段以允许Swift语言应用程序运行”
如果通过嵌入式二进制文件添加三个框架,它们也将添加到链接框架和库中。删除链接框架和库中的三个条目将解决问题。
魔术方法,如重新启动Xcode和重启Mac对我不起作用。
将框架添加为“嵌入式二进制”而不仅仅是“链接框架和库” - 修复了我的问题。
我还将Embedded Content Contains Swift Code标志设置为YES。
如果在转换Objective-C项目期间出现问题以开始使用Swift时,可能会发生此错误。问题是链接器构建设置从未正确配置,因此您必须手动完成。查找Runpath搜索路径构建设置并将其设置为:
$(inherited) @executable_path/Frameworks
编辑:我还应该补充说,最近发生了一些完全由其他事情引起的错误 - 苹果公司在Swift本身做了一个改变,从Xcode 6.1或6.1.1开始。唯一的解决方案似乎是退出Xcode,在Keychain Access中销毁您的证书,转到成员中心并删除所有证书和配置文件(商店中应用程序的配置文件除外 - 您无法删除它们),然后启动整个证书申请流程从头开始。
升级到OS X(Yosemite)的最新版本
经过几个小时的试验和错误,我解决了这个问题。 - 如果这适用于您的情况当然。
直到我将Mac OS X从Mavericks升级到Yosemite之前,我遇到了同样的问题。 - 它解决了我的问题,希望它也可以解决你的问题
我尝试了在网络上找到的所有解决方案,包括Apple和新证书。没有成功。
在经过6个月的尝试后,我可以运行xcode的唯一方法是在我的macbook上创建一个新帐户。
如果将此库添加到Build Phases中的“Copy Files”段,通常此错误将消失。
如果以上所有内容都没有帮助你,你真的感到沮丧...尝试所有的最佳技巧:Clean
,并确保Clean Build Folder
。 :)希望它有助于某人!
这些解决方案似乎都没有一直对我有用;每次成功运行后,它都会再次失败。对于我,“嵌入式内容包含Swift代码”标志始终设置为YES。
结果我将Xcode设置为6.3兼容。将其改回3.2兼容解决了它:
我也有这个问题,只是它找不到libswiftXCTest.dylib
。
解决方案是将XCTest.framework
添加到Build Phases/Link Binary with Library
的测试目标中。即使我正在尝试构建主要目标,我也会收到此错误。
当我向一个旧项目添加一个带有Swift语言的新的今日扩展目标时,就会出现这种情况。通过将项目更新为推荐设置,可以轻松修复。 Xcode 6.0.1
我使用Mavericks Xcode 6.1.1在使用iOS 8.1.1的iPhone5上进行测试时遇到了同样的问题。我尝试了所有可能的解决方案,包括新证书和配置文件,但没有任何帮助。我在项目级别和目标级别上对Embedded Content Contains Swift Code
和Runpath Search Paths
进行了更改。
我现在安装了Yosemite,没有任何进一步的改变,它开始工作。
同样的问题,对我来说,Crashlytics / Fabric / Beta / Twitter / Whatever-they-call-yourself本身上传了一个缺少嵌入式框架的二进制文件。如果我制作了一个存档,然后以标准方式导出了企业版,那么他们就有了魅力。
我不确定为什么这个问题被低估了,当我第一次尝试将Swift与现有项目一起使用时,我也遇到了这个问题。 Xcode重启也为我解决了这个问题。
几个月后,在这里尝试一切...疯狂的定义...在一个新的Mac用户下启动Xcode解决了它。
我删除了〜/ Library / Developer / *并重新安装了Xcode-所以不知道还有什么要格式化以使其工作。
我在这个问题上搜索得很久。导致此问题的原因有多种。
如果您在Objective C项目中遇到Swift代码/库,则应该尝试解决方案1-2-3
如果您在使用新的Swift项目时遇到此问题,解决方案4将最适合您。
重启Xcode,然后重启电脑和iPhone
转到项目构建设置并将Always Embed Swift Standard Libraries
(以前的Embedded Content Contains Swift Code
)标志设置为YES
转到项目构建设置并将@executable_path/Frameworks
添加到Runpath Search Paths
选项
如果以上都不起作用,这应该。苹果似乎是AirSign's 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
所以你应该重新创建证书和配置
在我的情况下,我试图导入自定义框架,并得到类似的错误。事实证明,我必须在嵌入式二进制文件中导入框架,而不是导入到链接的框架和库中。
嵌入式二进制文件位于项目设置 - > - >常规下
对于使用Adhoc / Enterprise分发版本遇到此问题的开发人员,
从开发门户创建生产证书,然后重新生成分发配置文件。在Mac上下载并安装它们。确保您在Xcode构建设置中选择了正确的配置文件并重建您的应用程序。
解决方案5:
就我而言,在答复中提到的所有解决方案都非常有用,但没有一个有效。我通过在项目目标的“常规”部分的“嵌入式二进制”部分中添加我的swift库来解决我的问题。也许这是因为我在我的工作区中包含了我的快速框架?无论它现在编译什么!准备好斯威夫特,我在这里!
Xcode的简单重启为我解决了这个问题。
对我来说,问题是由于我的Apple全球开发者关系认证机构无效。
从这里下载:https://developer.apple.com/certificationauthority/AppleWWDRCA.cer
将其拖放到Keychain Access中,清理项目并运行。