我正在尝试构建并运行基于Cocoa的OSX应用程序。但是,当我尝试将部署目标设置为10.8以外的任何其他目标时,我在应用程序尝试启动时收到运行时错误:
dyld: Library not loaded: /System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
Referenced from: /Users/chris/Library/Developer/Xcode/DerivedData/Build/Products/Release/MyApp.app/Contents/MacOS/MyApp
Reason: Incompatible library version: MyApp requires version 64.0.0 or later, but ApplicationServices provides version 1.0.0
据我所知,我的应用程序中没有任何内容可以使用ApplicationServices.framework中的任何内容。我甚至不知道它为什么会尝试加载该库。
作为参考,我使用了一些第三方框架,包括Growl.framework(Growl 2.0),Sparkle.framework(Sparkle 1.5 b6)和MagicKit.framework(https://github.com/aidansteele/MagicKit) )
答案 0 :(得分:5)
回答我自己的问题(经过几个小时的调查):
显然,通过链接到我的桌面应用程序项目中的CoreGraphics.framework,它导致了10.8版本的ApplicationServices框架的运行时加载请求。幸运的是,我甚至没有使用CoreGraphics的任何东西。删除导致dyld加载错误停止。
答案 1 :(得分:4)
确保添加 ApplicationServices.framework 到目标的构建阶段选项卡中的 链接二进制文件库 阶段。
答案 2 :(得分:3)
我通过尝试在CoreGraphics中使用符号并导入< CoreGraphics / CGGeometry.h>来解决此错误。直接,而不是推荐的< ApplicationServices / ApplicationServices.h>如文件所述。
信不信由你,即使在10.8中,你仍然应该为此导入和链接ApplicationServices。