dyld:库未加载:仅限Xcode 9上的@rpath / libswiftCore.dylib

时间:2017-09-22 21:26:00

标签: ios objective-c swift3 xcode9

我最近从8.3.3升级到Xcode 9。

我们的项目是用Objective-C编写的,就像我们使用的所有其他框架一样。我添加了一个用Swift(3.0版)编写的框架。在Xcode 8中,我能够在模拟器和设备上构建和运行项目而不会出现问题。在Xcode 9中,由于错误,我无法在模拟器或设备上运行项目:

dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: .../libraryname
Reason: image not found

降级后,我能够再次运行该项目。

我的配置有:

ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
STRIP_SWIFT_SYMBOLS = NO;
SWIFT_VERSION = 3.0;

8 个答案:

答案 0 :(得分:1)

只需清理并构建解决此问题。在Xcode 9.2和Swift 4中测试

答案 1 :(得分:0)

Swift框架必须使用与您的项目相同的Swift版本构建(在这种情况下,自从您升级并运行Xcode 9后,Swift 4就会出现这种情况)。

使用新版本重建并重新添加/替换框架,它应该可以正常工作。

答案 2 :(得分:0)

您是否正在使用Carthage并在您的计算机上安装了多个XCode_s?我跑的时候最近遇到了一个问题 carthage update --use-ssh --platform iOS在命令行中选择了xcode8.3.3。然后在构建中包含构建的框架。

要在XCode9中工作,您需要运行switch命令 您的Xcode.app sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer并再次运行carthage。

希望它有所帮助。

答案 3 :(得分:0)

有同样的问题。我正在使用Xcode 9.2,Swift 4,我的设备在iOS 11.1中运行。

解决方案:

我在Keychain Access中删除了Apple全球开发者关系证书颁发机构并将其替换为新的(您可以下载certificate here

之后,我将“Trust”(双击证书)从“Always Trust”更改为“System Default”。

答案 4 :(得分:0)

尝试重新启动Xcode。我尝试了其他一切,这就是阻止这个问题的原因。

答案 5 :(得分:0)

如果您的证书信任设置设置为“始终信任”,则会发生此问题。将其更改为“系统默认值”并重新创建构建。这应该可以解决问题:https://egeek.me/2017/10/21/code-signing-blocked-mmap-on-ios-device/

答案 6 :(得分:0)

我遇到了相同的问题(在Xcode 9.4.1上),但是在任何帮助下都无法解决。我遇到一个问题,尽管我输入了密码,但Xcode一直提示我使用钥匙串,但无法完成请求。该应用已成功构建并安装。但是,它立即在设备上运行时崩溃了。

这是解决我问题的方法。

  • 删除了我的证书和公钥/私钥对
  • 创建新证书(通过CSR)并将其安装在我的计算机上
  • 将新证书链接到供应配置文件,并将该配置文件安装在Xcode上
  • 清理了版本并删除了设备上的现有版本
  • 万岁!

希望这可以帮助正在搜索地球的人!

答案 7 :(得分:0)

经过数小时的时间处理此错误并尝试了各种解决方案后,我的解决方案与此处的其他解决方案有所不同,因此我将其添加给可能会受益的其他人。

我尝试过: -ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES =是 -LD_RUNPATH_SEARCH_PATHS = $(继承)@ executable_path / Framework

没有运气。原来这个问题是更基本的。我的项目有多个构建目标,并且以某种方式未设置Host Application的设置。 enter image description here