【发布时间】:2012-10-15 12:21:18
【问题描述】:
在这种情况发生之前,我在应用内购买可以正常工作:
我正在更新我的一个应用程序。它有几个应用内产品。我想确保如果用户购买其中任何一个,它们也应该在更新的应用程序中显示为“已购买”。我做了以下但没有用:
- 我通过 iTunes 将旧应用的临时版本安装到了测试设备上,并使用我的测试帐户在那里购买了 1 个应用内产品。
- 删除了旧版本。通过 xcode 安装更新版本。
- 我的应用程序首先询问用户是否要恢复购买的应用程序。当我点击恢复时,它要求我登录。我使用在应用产品中购买 1 的同一帐户登录,但没有恢复。
旧应用程序和更新后的应用程序具有相同的 ID。并且当不是购买旧的和恢复新的情况时,恢复功能可以正常工作。
知道为什么会这样吗?
【问题讨论】:
-
如果您在新旧版本的应用中使用相同的 ProductID,应该没有任何问题。 IAP 仅与 ProductID 和用户的 AppleID 相关,与应用版本无关。所以我猜是IAP沙盒环境的问题。
-
当使用 IAP 购买/恢复产品时,无论是否购买了特定的
SKProduct,您都应该在本地存储(例如NSUserDefaults)。这不是由 IAP 系统本身完成的。 -
嗨,erkanyildiz,是的,我正在使用沙箱进行测试。你的意思是它不能仅仅因为 appleID 是测试帐户而起作用吗?
-
嗨 basvk,我确实使用 NSUserDefaults,但是在删除应用程序后它就消失了,所以这不是问题。如果我购买新版本的产品并删除应用程序并重新安装并恢复,则恢复工作。