2

我正在构建一个利用仅 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

这很好用;在拨打仅限雪豹的电话之前,我需要检查选择器或确实存在该类。或者我可以在拨打电话之前检查操作系统版本。

问题是它非常脆弱。如果我只打一个 10.6 的电话,我就会破坏 Leopard 的兼容性。因此,即使使用正常的代码代码完成功能也可能很危险。

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

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

任何意见,将不胜感激。

此致,

坦率

4

1 回答 1

1

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

于 2010-03-30T12:44:29.617 回答