Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos 如何向Lion Cocoa应用程序添加Leopard和Snow Leopard支持?_Macos_Cocoa_Osx Lion_Backwards Compatibility - Fatal编程技术网

Macos 如何向Lion Cocoa应用程序添加Leopard和Snow Leopard支持?

Macos 如何向Lion Cocoa应用程序添加Leopard和Snow Leopard支持?,macos,cocoa,osx-lion,backwards-compatibility,Macos,Cocoa,Osx Lion,Backwards Compatibility,我已经在Lion上开发了一个可可应用程序,现在我想添加与Leopard和Snow Leopard的兼容性 我试图将开发目标设置为10.5,但在Leopard和SnowLeopard上仍然存在崩溃问题 我还试图用旧版本的Xcode打开这个项目,但是我得到了数百个编译错误,我想这是因为我不能用旧的MacOSSDK编译这个程序 关于解决Cocoa应用程序的复古兼容性问题,你有什么建议吗?我认为为最新的操作系统开发,然后在最后一刻尝试支持旧的操作系统通常不是一个好主意。如果您使用的任何API都是在您试图

我已经在Lion上开发了一个可可应用程序,现在我想添加与Leopard和Snow Leopard的兼容性

我试图将开发目标设置为10.5,但在Leopard和SnowLeopard上仍然存在崩溃问题

我还试图用旧版本的Xcode打开这个项目,但是我得到了数百个编译错误,我想这是因为我不能用旧的MacOSSDK编译这个程序


关于解决Cocoa应用程序的复古兼容性问题,你有什么建议吗?

我认为为最新的操作系统开发,然后在最后一刻尝试支持旧的操作系统通常不是一个好主意。如果您使用的任何API都是在您试图支持的最旧API之后引入到操作系统中的,那么您必须重写代码以避免使用这些API。一般来说不值得这么麻烦

也就是说,支持旧操作系统没有什么秘密。您只需要确保只使用您试图支持的最旧操作系统上可用的API类、方法和函数。当您查看文档时会注意到,对于每个方法,在“可用性”下,它会告诉您哪些版本的操作系统包含该方法。比如:

可用性 在Mac OS X v10.6及更高版本中提供

假设您不使用任何在目标操作系统版本上不可用的API,则只需将部署目标设置为目标操作系统的最低版本,然后构建。当然,您还需要在支持的每个OS版本上进行彻底的测试


如果您详细说明在Leopard和Snow Leopard上看到的崩溃问题,您的问题将更容易得到更详细的回答。

我认为为最新的操作系统开发并不是一个好主意,然后在最后一刻尝试支持旧的操作系统。如果您使用的任何API都是在您试图支持的最旧API之后引入到操作系统中的,那么您必须重写代码以避免使用这些API。一般来说不值得这么麻烦

也就是说,支持旧操作系统没有什么秘密。您只需要确保只使用您试图支持的最旧操作系统上可用的API类、方法和函数。当您查看文档时会注意到,对于每个方法,在“可用性”下,它会告诉您哪些版本的操作系统包含该方法。比如:

可用性 在Mac OS X v10.6及更高版本中提供

假设您不使用任何在目标操作系统版本上不可用的API,则只需将部署目标设置为目标操作系统的最低版本,然后构建。当然,您还需要在支持的每个OS版本上进行彻底的测试


如果详细说明Leopard和Snow Leopard上出现的崩溃问题,您的问题将更容易得到更详细的回答。

首先,在Mac上安装10.5 SDK。这可能没有必要,但无论如何都要这样做。你可以在网上找到说明。请记住,使用10.5SDK编译将确保兼容性,但除非动态加载新的OSX功能,否则将无法使用它们


其次,进入.xib文件,在Inspector窗格的File Properties选项卡的第一个凹口中禁用auto layout并将部署目标设置为10.5

首先,在Mac上安装10.5 SDK。这可能没有必要,但无论如何都要这样做。你可以在网上找到说明。请记住,使用10.5SDK编译将确保兼容性,但除非动态加载新的OSX功能,否则将无法使用它们

其次,进入.xib文件,在Inspector窗格的File Properties选项卡的第一个凹口中禁用auto layout并将部署目标设置为10.5