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

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

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

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

72397 次浏览

重启Xcode就解决了这个问题。

我真的不知道为什么这个问题被否决了,当我第一次尝试在一个现有的项目中使用Swift时,我也遇到了这个问题。Xcode重启也为我解决了这个问题。

我在使用带有生产证书的Ad Hoc(或企业)移动设备时遇到了这个问题。切换到开发证书和移动供应解决了这个问题。

如果在Objective-C项目转换为开始使用Swift的过程中出现了错误,就会发生此错误。问题是链接器构建设置从未正确配置,所以你必须手动完成。寻找Runpath Search Paths构建设置并将其设置为:

$(inherited) @executable_path/Frameworks

enter image description here

编辑:我还应该补充一点,最近有大量的错误完全是由其他原因引起的——苹果对Swift本身进行了更改,可能从Xcode 6.1或6.1.1开始。唯一的解决方案似乎是退出Xcode,在Keychain Access中销毁你的证书,到会员中心删除所有证书和配置文件(除了应用商店中的配置文件-你不能删除它们),然后从头开始整个证书请求过程。

对我来说,之前的解决方案都没用。我们发现在构建设置中有一个标记ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES(在早期版本中:&;嵌入式内容包含Swift代码&;)需要设置为YES。默认是NO !

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

从开发门户创建产品证书,然后重新生成分发配置文件。下载并安装在你的Mac上。确保你在Xcode构建设置中选择了正确的配置文件,并重新构建应用程序。

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

这显示当我添加了一个新的今天扩展目标与Swift语言的旧项目。 通过将项目更新为推荐设置可以轻松修复。 Xcode 6.0.1

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

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

  1. 创建并使用新的证书和移动provision 李(Ref AIRSIGN的博客) < / >
  2. Runpath Search Paths构建设置设置为:$(inherited) @executable_path/Frameworks 李(Ref 马特的回答) < / >

我在这个问题上研究了很久。有几个原因导致这个问题。

如果你在objective - C项目中使用Swift代码/库,你应该尝试解决方案1-2-3

如果你正面临这个问题,一个新的Swift项目解决方案4将最适合你。

解决方案1:

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

解决方案2:

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

解决方案3:

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

解决方案4:

如果以上都不起作用,那么应该这样做。苹果似乎是忍者补丁证书,如AirSign的文章所述

At InHouse证书

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

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

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

所以你应该重新创建证书及供应

方案五:

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

解决方案6:

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

(这个错误似乎有很多不同的原因。希望这能帮助到一些人。)

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

嵌入式二进制文件在项目设置-> ->通用下

我试了上面给出的所有答案,都没用。

终于工作后更新到优胜美地

升级到OS X的最新版本(Yosemite)

经过几个小时的试验&我想出了这个问题的解决办法。 -如果这适用于你的情况,当然

我也有同样的问题,直到我把我的Mac OS X从Mavericks升级到Yosemite。 -它解决了我的问题,希望它也能解决你的问题

我使用Xcode 6.1.1版本的Mavericks,在带有iOS 8.1.1的iPhone5上测试,也遇到了同样的问题。我尝试了所有可能的解决方案,包括新的证书和配置配置文件,但都没有帮助。我在项目级和目标级对Embedded Content Contains Swift CodeRunpath Search Paths进行了更改。

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

我有一个Obj-C项目,我开始添加swift源文件。

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

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

我也遇到过同样的问题,设置正确的代码签名标识解决了这个问题(构建设置->代码签名标识)。

根据苹果技术问题“所有在iOS 8发布后创建的企业和标准iOS开发者证书在适当的位置都有新的团队ID字段,以允许Swift语言应用程序运行”

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

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

在尝试了6个月之后,我能运行xcode的唯一方法就是在我的macbook上创建一个新帐户。

通常,如果您在构建阶段中将这个库添加到“复制文件”段,这个错误就会消失。

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

除了做上面的其他答案,我最后去了General选项卡,并使WatchKit可选。

 target:General:Linked Frameworks and Libraries: WatchKit.framework: Optional .framework .

在这里尝试了好几个月之后……疯狂的定义…在一个新的Mac用户下启动Xcode为我解决了这个问题。

我删除了~/Library/Developer/*并重新安装了Xcode-所以不知道还要格式化什么才能使它工作。

如果以上所有方法都对你没有帮助,你真的很沮丧……试试最好的方法:CleanClean Build Folder。:)希望它能帮助到一些人!

最近又开始得到这个错误。虽然前两个答案在过去为我解决了这个问题,但这次没有一个建议的答案有效。我注意到错误说:

 Reason: no suitable image found.  Did find:
/private/var/mobile/Containers/Bundle/Application/8D8E5347-940A-4724-ACFE-33DF4C4DCB37/your.app/Frameworks/libswiftCore.dylib: mmap() errno=1 validating first page of '/private/var/mobile/Containers/Bundle/Application/8D8E5347-940A-4724-ACFE-33DF4C4DCB37/your.app/Frameworks/libswiftCore.dylib'

所以我试着从设备上删除应用程序,然后我就可以重新构建并运行了。

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

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

添加框架为“嵌入式二进制文件”,而不仅仅是“链接框架和库”-修正了我的问题。

我还设置嵌入内容包含Swift代码标志为YES。

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

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

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

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

拖放到Keychain Access中,清理项目,然后运行。

我在我的项目中添加了SCLAlertView pod,后来删除了它。我没有从我的视图控制器中移除import SCLAlertView。理想情况下,它应该给出一个编译时错误,但它给出了一个提到dyld: Library not loaded: @rpath/SCLAlertView.framework的运行时错误。我从我的视图控制器中删除了import SCLAlertView,构建它,它没有给出错误。所以在我的情况下,我试图import一个库的框架没有找到。删除这些引用将解决您的问题。

尝试按住Alt键,然后进入产品->清洁构建文件夹…

希望它能帮助到一些人。

我也有同样的问题。我的解决方案是将每个pod声明移动到target子句中。

来自:

pod 'SomePod1'
pod 'SomePod2'
pod 'SomePod3'
target 'MyAwesomeApp', :exclusive => true do


end

:

target 'MyAwesomeApp', :exclusive => true do
pod 'SomePod1'
pod 'SomePod2'
pod 'SomePod3'
end

我的猜测是,如果pod声明放在目标声明之外,CocoaPods(0.39.0)可能会使用错误的xcconfig。

Pods.debug.xcconfig (X

Pods-MyAwesomeApp.debug.xcconfig (O

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

  1. 如果你的应用程序包含Swift代码,你需要设置这个标志。
  2. 清洁项目。除了项目>清洁,你还可以删除DerivedDataBuild目录。在首选项下面查找DerivedData的位置。Build应该在你的项目文件夹中。
  3. 确保Runpath Search Paths包含@executable_path/Frameworks
  4. 确保您的证书在OU(组织单元)字段中包含Apple Team ID苹果会为你添加这个,只需撤销你现有的分发证书并创建一个新的,下载,安装在KeyChain上,重新生成所有配置文件,下载并重建。
  5. Xcode重启。如果一切基本都很好,但Xcode还没有达到那里。

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

  1. 确保__ABC0中的Swift文件版本与Contents/YourApp.app/Frameworks中的版本相同因为Swift版本之间还不兼容二进制,你必须确保这些版本是你构建应用程序时使用的版本。你可以在/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos下找到这些库。
  2. 首先签署库和框架 。你需要首先codesign库和框架文件(在.app文件夹的Frameworks下),然后对整个.app树进行签名。.app树必须用框架的entitlements.plist来签名。

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

引用https://forums.developer.apple.com/thread/21292

这个解决方案对我很有效:

当我在命令行中通过via构建一个应用程序时,它发生在我这边 xcodebuild和xxrun PackageApplication,用一个 企业形象。在我们的CI构建服务器上,设置了证书 在密钥链中“始终信任”(选择certificate ->获取信息-> . 信任->“使用系统默认值”可以更改为“始终信任”)。我有 将其设置回“使用系统默认值”以使其工作。 最初,我们将其设置为“始终信任”以绕过钥匙链 软件更新和证书更新后出现的对话框

我也有这个问题,只是它没有定位libswiftXCTest.dylib

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

在我的情况下,我只是使用“Cmd+Shift+K”,然后“Cmd+B”运行它的工作

在更新到Xcode 10.2 (Swift 5)后遇到了这个问题。找到下面的苹果链接,显示了两个选项: https://support.apple.com/kb/DL1998?locale=en_US < / p >

对我来说,我把MacOS更新到10.14.4 (OS中包含Swift库)。否则,“下载Swift 5运行时支持命令行工具”的旧操作系统。