我正在构建一个利用Mac OS X 10.6技术的应用程序,但不会放弃10.5 Leopard的向后兼容性。
我这样做的方法是将10.6 SDK设置为基本SDK,弱链接所有框架并将部署目标设置为10.5,如下所述:
这很好用;在进行仅限Snow Leopard的调用之前,我需要检查选择器或类实际上是否存在。或者我可以在拨打电话之前检查操作系统版本。
问题是这非常脆弱。如果我拨打10.6的单个电话,我只能打击Leopard兼容性。因此,使用正常的代码完成功能可能会很危险。
我的问题:在进行发布构建之前,有没有办法检查10.5上没有定义哪些调用?某种静态分析,甚至只是一个技巧(目标设置其他SDK?)都可以。
我显然应该在发布任何东西之前在Leopard机器上进行测试,但即使如此,我也不可能在每次发布之前通过该程序的所有路径。
任何建议都将受到赞赏。
致以最诚挚的问候,
谢
答案 0 :(得分:1)
您可以将目标SDK更改为10.5。然后,编译器将输出warning: definition for '-snowLeopardOnlyMethod:' not found
条消息。