3

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

这个问题: OSX:改变.framework的路径

两者都对我达到这一点非常有帮助,但我仍然不完全在那里。

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

这是我尝试运行我的应用程序时得到的输出:

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

原因:找不到图片

二进制图像:0x7fff5fc00000 - 0x7fff5fc3be0f dyld 132.1 (???) <29DECB19-0193-2575-D838-CF743F0400B2> /usr/lib/dyld

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

非常感谢!

4

1 回答 1

2

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

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

事实上,我重新下载了框架以查看这些install_name_tool步骤是否必要,但似乎并非如此。他们没有它就工作。有趣的。

于 2012-10-25T02:35:38.290 回答