8

我想构建一个 OSX 应用程序,它将使用一些新的 10.7 SDK 功能(更具体地说,应用内购买)。但是我不想完全阻止 10.6 用户安装应用程序。

我怎样才能让 10.7 用户可以访问新功能,而 10.6 用户根本没有新功能但仍然可以使用基本的东西?

当我为 10.6 编译时,它不会像预期的那样加载具有“InApp”的 SDK。而且我想如果我为 10.7 用户编译将无法从 AppStore 安装它。

4

3 回答 3

2

您可以使用其中一种方法来确定用户的操作系统版本,然后如果他们正在运行 Lion,则运行代码,如果不是,则不要运行它(使用 if 语句)

编辑:您还必须弱链接 storekit 框架

于 2011-08-16T21:25:44.397 回答
1

不确定这是否有帮助,但对于较新的 API(例如仅适用于 Lion 的 API),我只需使用带有 respondToSelector 的 IF 语句:

这是 Apple 建议的方法之一,您不必在运行时了解特定的操作系统。

于 2011-12-04T20:17:00.357 回答
0

您能否创建一个可以加载并提供 10.7 功能的包?您的真实应用程序可以检查它在哪个操作系统下运行并且不加载 10.7 包。我不知道这是否可行,因为 10.7-SDK 包拒绝加载 10.6 SDK 应用程序并非不合理。

另一种可能性可能是在后台有两个应用程序,并有一个非常小的 shell 应用程序(甚至可能是一个脚本)来检测主机操作系统并执行操作系统正确的可执行文件。

于 2011-08-16T21:18:35.903 回答