如何避免XCode框架弱链接问题?

时间:2010-03-30 12:29:40

标签: cocoa xcode macos sdk weak-linking

我正在构建一个利用Mac OS X 10.6技术的应用程序,但不会放弃10.5 Leopard的向后兼容性。

我这样做的方法是将10.6 SDK设置为基本SDK,弱链接所有框架并将部署目标设置为10.5,如下所述:

http://developer.apple.com/mac/library/DOCUMENTATION/MacOSX/Conceptual/BPFrameworks/Concepts/WeakLinking.html

这很好用;在进行仅限Snow Leopard的调用之前,我需要检查选择器或类实际上是否存在。或者我可以在拨打电话之前检查操作系统版本。

问题是这非常脆弱。如果我拨打10.6的单个电话,我只能打击Leopard兼容性。因此,使用正常的代码完成功能可能会很危险。

我的问题:在进行发布构建之前,有没有办法检查10.5上没有定义哪些调用?某种静态分析,甚至只是一个技巧(目标设置其他SDK?)都可以。

我显然应该在发布任何东西之前在Leopard机器上进行测试,但即使如此,我也不可能在每次发布之前通过该程序的所有路径。

任何建议都将受到赞赏。

致以最诚挚的问候,

1 个答案:

答案 0 :(得分:1)

您可以将目标SDK更改为10.5。然后,编译器将输出warning: definition for '-snowLeopardOnlyMethod:' not found条消息。