当然,在发布我的问题之前,我已经做了调查研究。
我查看了以下内容:
如何在Xcode 4中“添加现有框架”?
在Xcode 4中添加框架
在Xcode 4中添加OpenGL框架
XCode 4添加dylib
但整个过程都变得不对劲了。
我的目标:将(CorePlot)框架添加到XCode Mac项目中(而不是iPhone项目)
我的环境:OSX Lion 10.7、SDK Lion、XCode 4.1(4B110)
我的步骤:
- 打开XCode,创建新项目
- 将CorePlot下载到我的libraries目录中(例如~/Applications/LIBS)
- 打开项目首选项,通过(+)打开对话框以添加框架
- 添加现有框架(+复制文件到目标组,如果需要的话)
- 选择的目录是~/Applications/LIBS/CorePlot/Binaries/MacOS/CorePlot.framework/
- 将CorePlot拖到Frameworks组中
- 将CorePlot添加到
Build Phases > Link Binary with Libraries
然后运行我的项目
我得到的错误消息是:
dyld: Library not loaded: @loader_path/../Frameworks/CorePlot.framework/Versions/A/CorePlot
Referenced from: /Users/username/Library/Developer/Xcode/DerivedData/metralight-hjuvuwlhgohrtdeepvcymnsaxomc/Build/Products/Debug/metralight.app/Contents/MacOS/metralight
Reason: image not found
实际上,当我查看给定的目录(应用程序捆绑包)时,没有Frameworks
目录,因此链接不能成功。
我又搜索了一下,发现可以创建一个构建规则(Build Rule)
并通过某些脚本将文件复制到最终二进制包中,但这是唯一的方法吗?
难道没有什么选项可以打开/关闭将链接的框架复制到最终包中吗?
请注意,CorePlot目标". framework"已将动态库安装名称(Dynamic Library Install Name)
设置为@loader_path/../Frameworks/CorePlot.framework/Versions/A/CorePlot
,因此它在最终二进制包中检索正确的位置。