Wil*_*l K 5 macos xcode cocoa core-graphics osx-lion
我似乎在执行正确的步骤时仍无法在10.7上运行Cocoa应用程序。这是我在做什么以及似乎有什么错误的描述:
我在具有XCode 5.0.2和SDK 10.9的10.8机器上构建,部署目标为10.7。我的一个动态库使用了一些CoreGraphics函数,因此我将该库与ApplicationServices.framework链接在一起。(据我了解,在10.8之前,CoreGraphics已包含在ApplicationServices中,因此我无法直接与CoreGraphics链接,否则我将遇到问题。)
构建之后,使用CoreGraphics的库在/System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics中直接引用了CoreGraphics.framework,但是该路径在10.7上不存在。当我在10.8+上运行该应用程序时,它可以正常工作,但是在10.7上,它试图加载不存在的框架时会崩溃。
我的(hacky)解决方案:
经过一会儿的努力之后,我决定进行核操作并添加一个新的构建阶段,以将库中的CoreGraphics参考更改为ApplicationServices.framework下与10.7兼容的路径。我的脚本执行以下操作:
install_name_tool -change /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics /System/Library/Frameworks/ApplicationServices.framework/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics myLibrary.dylib
这行得通,但看起来像个傻瓜。其他人看到了吗?
您必须对其进行测试,但也许仅链接到 ApplicationServices.framework 就足够了。
否则,您应该能够使其与弱链接一起工作:在“链接二进制文件与库构建阶段”中,将“状态”从“必需”更改为“最佳”。有关弱链接的更多详细信息可以在此处找到。
归档时间: |
|
查看次数: |
977 次 |
最近记录: |