ios - IOS - dyld:未加载库:@rpath/libswiftSwiftOnoneSupport.dylib

115 3

我已经构建了Swift框架,现在我正在尝试构建一个使用该框架的Swift iOS应用程序,我收到了这个错误:

 

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


 Referenced from:/Users/tdean/Library/Developer/Xcode/DerivedData/NFLApplication-ejmafvjrlqgjaabggwvadjarjjlg/Build/Products/Debug-iphonesimulator/NFLStatsModel.framework/NFLStatsModel


 Reason: image not found



我已经搜索,并且找到类似的报告,并尝试了其中列出的修复,包括:

  • 清除我的DerivedData文件夹
  • 重新启动Xcode和iPhone模拟器
  • 确保 Always Embed Swift Standard Libraries = YES 在我的框架和应用程序设置的构建中都被设置,
  • 确保在我的框架和应用程序设置的构建中都设置了Enable Bitcode=NO
  • 确保Runpath Search Paths设置为@executable_path/Frameworks,在我的框架和应用程序设置的构建中都是,
  • 在项目中将所有libswift文件从我的Xcode安装复制到本地副本,并添加了自定义构建阶段将这些文件复制到框架文件夹中,

每次尝试运行应用程序时,都会出现同样的错误。

  • Xcode版本 8.1 (8B62 )
  • Apple Swift版本3.0.1 (swiftlang- 800.0.58.6 clang- 800.0.42.1 ),
时间: 原作者:

109 1

我最终使用了一些修复方法,我不确定所有这些是否都是需要的,但是,我记录了这里的工作,以便任何人都能受益。

  • 我已经 Always Embed Swift Standard Libraries 为我的Swift框架和使用框架的Swift应用程序中的YES设置选项卡中的值提供一个值,
  • 我已将Foundation.framework添加到我的Swift框架和使用该框架的Swift应用程序的常规选项卡的Linked Frameworks and Libraries部分。
  • 我已将Foundation.framework添加到使用该框架的Swift应用程序的常规选项卡的Embedded Binaries部分。

有了这3个设置,我就可以构建和运行应用程序,而不会遇到这个错误。

原作者:
84 0

我有一个空项目由框架和测试目标组成,当运行测试时,我得到了这个错误,显然,Swift很聪明地检测到你不需要这个库,并且不会链接到libswiftSwiftOnoneSupport.dylib

修复只是添加一些代码,我刚刚添加,

 

class Test {


 func a() { print (" something" ) }


}



而且libswiftSwiftOnoneSupport.dylib得到了链接。

原作者:
76 0

如何安装依赖项?

我也有类似的问题:

dyld: Library not loaded: @rpath/libswiftSwiftOnoneSupport.dylib Referenced from: <internal framework> Reason: image not found

事实证明它与Swift整体模块优化有关。

使用Carthage作为依赖管理器,它们被编译为发布,因此编译了整个模块优化,在模拟器上运行该应用程序可将它编译为调试,我猜测动态框架不能与运行它的应用程序处于不同的优化级别。

解决方案是显式指定Carthage构建的配置,( carthage bootstrap --configuration Debug )哦,当然,还需要清理我的构建文件夹。

原作者:
126 2

在坚持了几天之后,我终于找到了一些适合我的东西; 希望这对其他人也有帮助。

结论是,在代码中的任何地方,刻意地去使用print()会强制加载libswiftSwiftOnoneSupport.dylib,而且问题将会消失。

原作者:
...