在app bundle中嵌入多个交叉引用框架

时间:2012-10-25 02:29:30

标签: xcode macos frameworks

首先,我想说这个问题: Bundle framework with application in XCode

这个问题: OSX: changing path of .framework

非常有帮助我达到这一点,但我仍然不在那里。

因此,就像前两个问题的原始海报一样,我正在尝试在我的应用包中嵌入一个框架。或者说,问题是我正在尝试在我的应用程序包中嵌入MULTIPLE框架,其中一些框架依赖于彼此。我相信即使我的应用程序可以成功找到框架(我已经更改了安装目录以便框架知道它们在哪里),那些相互引用的框架仍然在寻找要在正常情况下安装的框架〜/ Library / Frameworks目录。

这是我在尝试运行我的应用时获得的输出:

  

Dyld错误消息:

     

未加载库:@ rpath / SDL.framework / Versions / A / SDL

     

引自:/ Users / Daly / Library / Developer / Xcode / DerivedData / Coin_Checkers_2-cibyiolfgsmcicdrcfxufftxzbsk / Build / Products / Debug / Coin Checkers 2.app/Contents/MacOS /../ Frameworks / SDL_image.framework / SDL_image < / p>      

原因:未找到图片

     

二进制图像:       0x7fff5fc00000-0x7fff5fc3be0f dyld 132.1(???)&lt; 29DECB19-0193-2575-D838-CF743F0400B2&gt; / usr / lib中/ dyld的

在我看来,它正确加载SDL_image,但在SDL_image引用SDL时失败。是否有任何类似的技巧可以将SDL_image框架引导到我的嵌入式SDL框架的正确位置?

非常感谢!

1 个答案:

答案 0 :(得分:2)

哦,没关系。我没有看到这个问题,直到它出现在旁边的相关部分: Embedding frameworks in a Mac App Bundle

显然我需要做的就是设置runpath搜索路径,这解决了我所有的问题。我曾尝试设置Frameworks搜索路径,但这似乎没有帮助。

事实上,我重新下载了框架以查看install_name_tool步骤是否必要,而且似乎不是。没有它,他们工作。有趣。