所以首先,我想说这个问题: Bundle framework with application in XCode
还有这个问题: OSX: changing path of .framework
两者都对我达到这一点非常有帮助,但我还没有完全做到这一点。
因此,就像前两个问题的原始发帖者一样,我正在尝试在我的应用程序包中嵌入一个框架。或者,更确切地说,问题是我试图在我的应用程序包中嵌入多个框架,其中一些框架相互依赖。我相信即使我的应用程序可以成功找到框架(我已经更改了安装目录以便框架知道它们在哪里),但相互引用的框架仍在寻找要安装在正常 ~/Library 中的框架/框架目录。
这是我在尝试运行我的应用时得到的输出:
Dyld Error Message:
Library not loaded: @rpath/SDL.framework/Versions/A/SDL
Referenced from: /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
Reason: image not found
Binary Images: 0x7fff5fc00000 - 0x7fff5fc3be0f dyld 132.1 (???) <29DECB19-0193-2575-D838-CF743F0400B2> /usr/lib/dyld
在我看来,它正在正确加载 SDL_image
,但在 SDL_image 引用 SDL
时失败。我可以使用任何类似的技巧将 SDL_image 框架定向到我的嵌入式 SDL 框架的正确位置吗?
非常感谢!
最佳答案
哦,没关系。直到它出现在侧面的相关部分中,我才看到这个问题: Embedding frameworks in a Mac App Bundle
显然我需要做的就是设置运行路径搜索路径,这解决了我所有的问题。我曾尝试设置框架搜索路径,但这似乎没有帮助。
事实上,我重新下载了框架以查看是否需要 install_name_tool
步骤,但似乎不需要。他们在没有它的情况下工作。有趣。
关于xcode - 在应用程序包中嵌入多个交叉引用框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13060727/