我在 Lion 上开发了一个 Cocoa 应用程序,现在我想添加与 Leopard 和 Snow Leopard 的兼容性。
我尝试将开发目标设置为 10.5,但它在 Leopard 和 Snow Leopard 上仍然存在崩溃问题。
我也尝试使用旧版本的 Xcode 打开项目,但出现数百个编译错误(我猜是因为我无法使用旧的 Mac OS SDK 编译程序)
您对解决 Cocoa Apps 的追溯兼容性问题有什么建议吗?
我在 Lion 上开发了一个 Cocoa 应用程序,现在我想添加与 Leopard 和 Snow Leopard 的兼容性。
我尝试将开发目标设置为 10.5,但它在 Leopard 和 Snow Leopard 上仍然存在崩溃问题。
我也尝试使用旧版本的 Xcode 打开项目,但出现数百个编译错误(我猜是因为我无法使用旧的 Mac OS SDK 编译程序)
您对解决 Cocoa Apps 的追溯兼容性问题有什么建议吗?
我认为为最新的操作系统开发然后在最后一刻尝试支持旧操作系统通常不是一个好主意。如果您使用的任何 API 在操作系统中引入的时间晚于您尝试支持的最旧版本,则您必须重写代码以避免使用这些 API。这通常不值得麻烦。
也就是说,支持旧操作系统并不是什么秘密。您只需要确保您只使用在您尝试支持的最旧操作系统上可用的 API(类、方法、函数)。在查看每种方法的文档时,您会注意到,在“可用性”下,它会告诉您哪些版本的操作系统包含该方法。就像是:
可用性
适用于 Mac OS X v10.6 及更高版本。
假设您不使用您所针对的操作系统版本上不可用的任何 API,您所需要做的就是将部署目标设置为您所针对的最低操作系统,然后进行构建。当然,您还需要在您支持的每个操作系统版本上进行彻底测试。
如果您详细说明您在 Leopard 和 Snow Leopard 上看到的“崩溃问题”,您的问题会更容易回答。
首先,在您的 Mac 上安装 10.5 SDK。这可能不是必需的,但无论如何都要这样做。您可以在 Internet 上找到说明。请记住,使用 10.5 SDK 编译将确保兼容性,但您将无法使用更新的 OS X 功能,除非您动态加载它们。
其次,进入您的 .xib 文件并在 File Properties 选项卡上(Inspector 窗格中的第一个缺口)禁用自动布局并将部署目标设置为 10.5。