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