sim*_*nbs 5 macos cocoa frameworks
我创建了一个使用RMSharedPreferences框架的Mac应用程序.打开应用程序时,它立即崩溃,我收到以下错误:
Dyld Error Message:
Library not loaded: @rpath/RMSharedPreferences.framework/Versions/A/RMSharedPreferences
Referenced from: /Users/USER/Desktop/MyApp.app/Contents/MacOS/MyApp
Reason: image not found
Run Code Online (Sandbox Code Playgroud)
似乎找不到框架.我已经尝试将复制文件阶段添加到目标,该目标应该复制框架,当在Finder中浏览应用程序的内容时,它似乎被正确复制.
有谁知道什么可能导致这个错误?
编辑:将框架设置为可选确实使应用程序启动没有任何错误,但应用程序不能完全工作.任何与RMSharedPreferences相关的调用都将被忽略.

ser*_*gio 10
由于您将框架与应用程序捆绑在一起,因此应设置框架的安装位置.您可以在框架目标构建设置"安装位置"中设置它.使用类似的东西:
@executable_path
Run Code Online (Sandbox Code Playgroud)
您还可以为框架使用单独的文件夹,然后您将使用:
@executable_path/../Frameworks/
Run Code Online (Sandbox Code Playgroud)
如果您无法重建框架(这不是您的,但我一般说),您可以修改预构建的框架安装路径,如下所示:
install_name_tool -id @executable_path/../Frameworks/<framework_name> <your_framework>
Run Code Online (Sandbox Code Playgroud)
如果要将框架捆绑到另一个框架中,则可以使用@loader_path而不是@executable_path.
@rpath是更灵活的关键字,建议使用它。
更好的方法是在Xcode中设置“运行路径搜索路径”构建设置。
这避免了需要额外的构建阶段脚本来修改框架。
例如,根据您的情况,您可以将“运行路径搜索路径”设置为
@executable_path/../Frameworks
Run Code Online (Sandbox Code Playgroud)
要么
@loader_path/../Frameworks
Run Code Online (Sandbox Code Playgroud)
如果您尝试从框架内加载框架。
| 归档时间: |
|
| 查看次数: |
8284 次 |
| 最近记录: |