无法在OSX 10.8下设置部署目标(错误:dyld:未加载库 - 原因:库版本不兼容)

时间:2012-12-05 02:06:36

标签: xcode macos cocoa frameworks build

我正在尝试构建并运行基于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) )

3 个答案:

答案 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。