捆绑框架与XCode中的应用程序
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了捆绑框架与XCode中的应用程序相关的知识,希望对你有一定的参考价值。
我是XCode新手。我想跟随these instructions。很显然,我错过了一些东西,因为虽然我可以看到我想要的框架被复制到应用程序包中,但我无法引用它。
当我从我以外的机器启动应用程序时(或者如果我从/ Library / Frameworks /中删除OpenCV),我收到以下错误:
Dyld错误消息:未加载库:/Users/david/Library/Frameworks/OpenCV.framework/Versions/A/OpenCV参考自:/Users/g/Demo/Slates/ClipSplitter/build/Release/ClipSplitter.app/Contents/ MacOS / ClipSplitter原因:找不到图像
如果这有任何区别,我的系统上没有用户“david”。这也是从互联网上下载的预建OpenCV。 (Here’s a screenshot of the project,如评论中所要求的那样。)
构建OpenCV.framework后,它已配置为使用/Users/david/Library/Frameworks/
的安装路径。
由于您希望将库用作私有框架(安装在ClipSplitter.app/Contents/Frameworks/OpenCV.framework
的应用程序包装器中),因此您必须更改其安装路径。这可以使用终端轻松完成,如下所示:
$ install_name_tool -id @executable_path/../Frameworks/OpenCV.framework/OpenCV <your_path>/OpenCV.framework/OpenCV
当然,你必须调整最后一个参数的路径。
现在,在链接应用程序时,修改后的框架告诉链接器dyld必须在应用程序的app包装器中搜索OpenCV.framework(在ClipSplitter.app/Contents/Frameworks目录中)。
现在,您必须将OpenCV.framework复制到应用程序包装器。您可以通过添加复制文件构建阶段来执行此操作作为构建过程的一部分:右键单击目标,选择添加 - >新构建阶段 - >新建复制文件构建阶段。从弹出的“目标”中选择“框架”并关闭对话框。
您的目标现在将包含一个新阶段,您可以通过拖动Xcode窗口左侧的Project Navigator中的图标来添加OpenCV.framework。请注意,Xcode不允许您使用“+”按钮将文件夹添加到“复制文件”阶段,因此为了复制框架,您必须将其拖放。
您需要将构建设置“安装目录”设置为@executable_path/../Frameworks
请参阅https://developer.apple.com/library/content/documentation/MacOSX/Conceptual/BPFrameworks/Tasks/CreatingFrameworks.html中有关在应用程序包中嵌入专用框架的章节
问候
使用Xcode 5,您可以使用应用程序目标的qazxswpoi面板来实现此目的。
此面板的默认外观是
通过按下“复制文件”下的“+”按钮,您可以将框架添加为文件,将其复制到应用程序包中的Frameworks中。
现在,在构建时,您的Framework将被复制到您的包中。
以上是关于捆绑框架与XCode中的应用程序的主要内容,如果未能解决你的问题,请参考以下文章