2

我正在开发一个最初不是由我开发的项目,该项目是一个带有大量应用内购买的 iphone 应用程序,这些应用内购买是存储在应用程序内的大图像。这些图像使应用程序变大(~ 70 Mb)。此应用程序与 iOS 4.x 及更高版本兼容。

随着 iPhone 5 和 iOS 6 的推出,该公司希望创建一个全新的应用程序,该应用程序仅与 iOS 6 兼容,并且放弃了对先前版本的所有遗留支持。这个新版本会将应用内购买的图像存储在 Apple 服务器上,这将使应用大小降至 3 Mb。但是,另一方面,他们不想放弃那些购买应用内购买的人,他们想创建一个用户可以将购买从旧版本转移到新版本的方案。

我知道这可以通过在我们这边拥有一台服务器并设置一个应用程序和一个数据库来实现,但是他们现在有限的预算正在禁止这样做。那么,有没有办法只使用应用程序和 iCloud(或苹果方面的任何东西)来做到这一点?

我想知道是否可以用来做到这一点。我的意思是,我可以使用键值存储的东西来做到这一点吗?或者换句话说:两个应用程序可以有相同的com.apple.developer.ubiquity-kvstore-identifier吗?

谢谢。

4

1 回答 1

1

如果您的用户同时安装了这两个应用程序,则可以很容易地将数据从一个应用程序传输到另一个应用程序,但是不可能将应用程序购买从一个应用程序传输到另一个应用程序。

您需要做的是更新您的旧应用程序以支持某种操作或链接到新应用程序,然后从旧应用程序中打开新应用程序UIApplication openURL:并传递一些有关升级的元数据。

然后在新应用程序中,您的应用程序代表将收到didFinishLaunchingWithOptions:用于启动应用程序的 URL,然后您可以下载他们的购买。

通过为您的新应用注册 URL 方案来支持此功能,这是一个info.plist设置。

在旧应用程序和新应用程序之间进行上述购买元数据传输时,您将遇到的一个问题是无法通过 StoreKit/Apple 恢复他们的购买(如上所述,无法进行传输) .

如果您的新应用有两个应用内购买 SKU,您可以绕过此问题并为现有客户提供恢复购买的能力。

一件是新客户需要支付的常用物品,另一件是相同的,但现有客户“购买”为 0 美元,因此他们在 StoreKit/Apple 上注册了购买,以便他们将来在没有旧应用程序的情况下恢复。

如果现有客户已通过上述方法升级,新应用程序可以有条件地向现有客户显示此 $0 选项。

于 2012-09-14T02:10:40.883 回答