向XCode 4中添加框架

15

当然,在发布我的问题之前,我已经做了调查研究。

我查看了以下内容:
如何在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,因此它在最终二进制包中检索正确的位置。

2个回答

28

通过“添加现有框架”添加框架后

  • 进入 项目设置 > 构建阶段
  • 在右下角点击 添加构建阶段 > 复制文件
  • 选择目标 > 框架
  • 将框架拖放到文件列表中

就是这样。


我是这样解决的,不需要通过“添加现有框架”来添加文件。 - Lithu T.V
谢谢!谢谢!谢谢!+1 - TonyMkenu

3

这里还有一个重要的细节——你必须在项目中定义“运行时搜索路径”,默认情况下为空。

类似于这样:

LD_RUNPATH_SEARCH_PATHS = @loader_path/../Frameworks

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接