我已经构建了一个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
Run Code Online (Sandbox Code Playgroud)
我搜索了SO并找到了类似的报告并尝试了其中列出的修复程序,包括:
Always Embed Swift Standard Libraries = YES
在我的框架和我的应用程序的构建设置中设置Enable Bitcode=NO
在我的框架和我的应用程序的构建设置中设置Runpath Search Paths
被设置为@executable_path/Frameworks
,无论是在我的框架和我的应用程序的构建设置在每种情况下,当我尝试运行我的应用程序时,我都会遇到相同的错误.
Tim*_*ean 42
我最终使用了各种修复工具.我不确定是否所有这些都是必需的,但我在这里记录似乎对我有用的东西,以防万一其他人可以从我发现的东西中受益.
Always Embed Swift Standard Libraries
了一个值YES
.Foundation.framework
到我的Swift框架和使用该框架的Swift应用程序的常规选项卡的Linked Frameworks and Libraries部分.Foundation.framework
到使用框架的Swift应用程序的常规选项卡的嵌入式二进制文件部分.有了所有这三个设置,我就可以构建并运行我的应用程序而不会遇到此错误.
S2d*_*ent 25
对于每个人来说可能并非如此,但我通过在主目标中编写一些代码来解决它.
我有一个由框架和测试目标组成的空项目,在运行测试时我遇到了这个错误.显然Swift非常聪明地检测到你实际上并不需要这个库并且没有链接到libswiftSwiftOnoneSupport.dylib
.
修复只是添加一些代码,我刚刚添加:
class Test {
func a() { print ("something") }
}
Run Code Online (Sandbox Code Playgroud)
并libswiftSwiftOnoneSupport.dylib
得到了联系.
你是如何安装依赖项的?
我有一个类似的问题:
dyld: Library not loaded: @rpath/libswiftSwiftOnoneSupport.dylib
Referenced from: <internal framework>
Reason: image not found
事实证明这与Swift整体模块优化有关.
使用Carthage作为依赖管理器,它们被编译为Release,因此使用Xcode建议我打开的整个模块优化进行编译.在模拟器上运行应用程序将其编译为Debug.我猜测动态框架不能与运行它的应用程序处于不同的优化级别.
解决方案是明确指定我希望Carthage构建的配置.(carthage bootstrap --configuration Debug
)哦,当然,清理我的构建文件夹.
归档时间: |
|
查看次数: |
10382 次 |
最近记录: |