【发布时间】:2011-10-21 19:43:38
【问题描述】:
当然,我在发布我的问题之前进行了研究。
我看了
How to "add existing frameworks" in Xcode 4?
Adding Framework in Xcode 4
Adding an OpenGL framework in Xcode 4
XCode 4 adding dylib
但整个事情都变得错误了。
我的目标:将(CorePlot)框架添加到 XCode Mac 项目(不是 iPhone)
我的环境:OSX Lion 10.7、SDK Lion、XCode 4.1 (4B110)
我的步骤:
- 打开 XCode,创建新项目
- 已将 CorePlot 下载到我的库目录中(如 ~/Applications/LIBS)
- 打开的项目首选项,通过 (+) 打开的对话框添加框架
- 添加现有框架(+ 如果需要,将文件复制到目标组)
- 选择的目录是 ~/Applications/LIBS/CorePlot/Binaries/MacOS/CorePlot.framework/
- DnD CorePlot 到 Frameworks Group
- 将 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,因此它在最终二进制包中的位置正确
【问题讨论】:
标签: objective-c xcode frameworks build-automation