2011-08-07 64 views
15

当然,在发布我的问题之前我做了一些研究。将框架添加到XCode 4

我看着
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苹果项目(不是iPhone的)

我的环境:OSX狮子10.7,SDK狮子时,Xcode 4.1(4B110)

我的步骤:

  • 开业的XCode,创建新的项目
  • 下载CorePlot到我的图书馆目录(如〜/应用/ LIBS)
  • 打开的项目首选项,通过(+)打开的对话框添加框架
  • 添加现有的框架(+复制文件到dest。如果需要组)
  • 选定的目录为〜/应用/ LIBS/CorePlot /双星/ MacOS的/ CorePlot.framework/
  • 的DnD CorePlot到框架组
  • 新增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目标'。框架”具有Dynamic Library Install Name设置为@loader_path/../Frameworks/CorePlot.framework/Versions/A/CorePlot,所以它在寻找合适的地点在最终的二进制包

回答

28

通过‘添加现有框架’

  • 转到Project Settings>Build Phases
  • 加入框架在右下角后点击Add buid phase>Copy Files
  • 选择目的地>Frameworks
  • 拖动&将框架拖放到文件列表中

就是这样。

+0

它没有做任何diffrence这里!我失去了smthing.Tried这种方法 –

+0

きwrked出来这样不需要通过添加文件“添加现有框架” –

+0

谢谢,它为我工作:) – NSExpression

4

此处的另一个重要细节 - 您必须在项目中定义“运行时搜索路径”,默认为空。

事情是这样的:

LD_RUNPATH_SEARCH_PATHS = @loader_path/../Frameworks