【发布时间】:2016-06-08 03:57:17
【问题描述】:
我最近使用的一个库切换到分发为 .framework。
在我现有的 CMake 文件中,我已经成功地将它与我的 iOS 应用程序链接,但我得到了:
dyld: Library not loaded: @rpath/Pizza.framework/Pizza
Referenced from: /var/mobile/Containers/Bundle/Application/D71ED298-C287-4B2F-8AFA-710A14C06D75/pizzashop.app/pizza
Reason: image not found
当我从 Xcode 安装它时。如果我手动将它添加到我的 xcode 项目中,在“嵌入式二进制文件”部分,那么我很好(见下图)
所以我得出的结论是,问题在于将 .framework 放入我的应用程序包中。我遇到了this question 并查看了链接的 QT 示例,但我仍在尝试定位自己,因为我发现语法有点不透明。
我想在这里使用 CMake 的 BundleUtilities 吗?在查看 BundleUtilities 示例时,我有点迷茫:
set(APPS ...) # paths to executables
set(DIRS ...) # directories to search for prerequisites
INSTALL(CODE "
include(BundleUtilities)
fixup_bundle(\"${APPS}\" \"\" \"${DIRS}\")
" COMPONENT Runtime)
这是特定于 OSX 的还是我可以将它类似地应用于 iOS?
【问题讨论】:
-
我也有同样的问题。据我了解,FIXUP_BUNDLE 应该是理想的。但是,它看起来不像是为处理 iOS 包布局而构建的。
-
@EmilStyrke 已经在我的 TODO 列表上发布了一段时间的答案,你的痛苦促使我把它放在优先级上 :)
标签: ios xcode frameworks cmake