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