4

我正在尝试构建和运行基于 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 中的任何内容。我什至不知道它为什么会尝试加载该库。

作为参考,我使用了一些 3rd 方框架,包括 Growl.framework (Growl 2.0)、Sparkle.framework (Sparkle 1.5 b6) 和 MagicKit.framework (https://github.com/aidansteele/MagicKit)

4

3 回答 3

5

回答我自己的问题(经过几个小时的调查):

显然,通过链接到我的桌面应用程序项目中的 CoreGraphics.framework,它会导致 10.8 版本的 ApplicationServices 框架的运行时加载请求。幸运的是,我什至没有使用 CoreGraphics 的任何东西。删除导致 dyld 加载错误停止。

于 2012-12-05T19:03:23.520 回答
4

确保将ApplicationServices.framework添加到目标的 Build Phase 选项卡中的Link Binary With Libraries Phase。

于 2013-08-03T10:01:54.987 回答
3

我通过尝试在 CoreGraphics 中使用符号并直接导入 <CoreGraphics/CGGeometry.h> 而不是文档中指定的推荐的 <ApplicationServices/ApplicationServices.h> 得到了这个错误。

信不信由你,即使在 10.8 中,您仍然应该为此导入和链接 ApplicationServices。

于 2012-12-26T20:17:47.543 回答