我想构建一个OSX应用程序,该应用程序将使用一些新的10.7 SDK功能(更具体地说,应用程序内购买)。但是,我不想完全阻止10.6用户安装该应用程序。
如何才能让10.7个用户可以访问新功能,而10.6个用户根本没有新功能,但仍然可以使用基本内容?
当我编译10.6时,它没有按预期加载具有“InApp”的SDK。我想如果我编译10.7用户将无法从AppStore安装它。
答案 0 :(得分:2)
您可以使用these方法之一来确定用户的操作系统版本,然后如果他们正在运行Lion,则运行代码,如果他们不运行它(使用if语句)
编辑:您还必须弱连接storekit框架
答案 1 :(得分:1)
不确定这是否有帮助,但对于较新的API(例如仅针对Lion的那些),我只使用带有respondToSelector的IF语句:
这是Apple建议的方式之一,您不必在运行时了解特定操作系统。
答案 2 :(得分:0)
你能创建一个可以加载并提供10.7功能的包吗?你真正的应用程序可以检查它正在运行的操作系统,而不是加载10.7捆绑。我不知道这是否可行,因为10.7-SDK包拒绝加载10.6 SDK应用程序是不合理的。
另一种可能性可能是拥有两个应用程序,并且有一个非常小的shell应用程序(甚至可能是一个脚本)来检测主机操作系统并执行操作系统正确的可执行文件。