我正在构建一个应用程序,该应用程序利用仅限 Mac OS X 10.6 的技术,但不会放弃对 10.5 Leopard 的向后兼容性。
我这样做的方法是将 10.6 SDK 设置为基础 SDK,弱链接所有框架并将部署目标设置为 10.5,如下所述:
这很好用;在进行仅限 Snow Leopard 的调用之前,我需要检查选择器或类是否确实存在。或者我可以在调用电话之前检查操作系统版本。
问题是它非常脆弱。如果我只进行一次 10.6 的调用,我就会破坏 Leopard 兼容性。因此,即使使用正常的代码代码完成功能也可能很危险。
我的问题:在进行发布构建之前,有什么方法可以检查 10.5 上未定义哪些调用?某种静态分析,甚至只是一个技巧(设置另一个 SDK 的目标?)就可以了。
我显然应该在发布任何东西之前在 Leopard 机器上进行测试,但即便如此,我也不可能在每次发布之前都遍历程序的所有路径。
如有任何建议,我们将不胜感激。
最诚挚的问候,
弗兰克
最佳答案
您可以将目标 SDK 更改为 10.5。然后,编译器将输出 warning:definition for '-snowLeopardOnlyMethod:' not find
消息。
关于cocoa - 如何避免XCode框架弱链接问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2545095/