在更新的应用程序上恢复旧购买的应用程序内产品

Posted

技术标签:

【中文标题】在更新的应用程序上恢复旧购买的应用程序内产品【英文标题】:restore old purchased in-app product on updated app 【发布时间】:2012-10-15 12:21:18 【问题描述】:

在这种情况发生之前,我在应用内购买可以正常工作:

我正在更新我的一个应用程序。它有几个应用内产品。我想确保如果用户购买其中任何一个,它们也应该在更新的应用程序中显示为“已购买”。我做了以下但没有用:

    我通过 iTunes 将旧应用的临时版本安装到了测试设备上,并使用我的测试帐户在那里购买了 1 个应用内产品。 删除了旧版本。通过 xcode 安装更新版本。 我的应用程序首先询问用户是否要恢复购买的应用程序。当我点击恢复时,它要求我登录。我使用在应用产品中购买 1 的同一帐户登录,但没有恢复。

旧应用程序和更新后的应用程序具有相同的 ID。并且当不是购买旧的和恢复新的情况时,恢复功能可以正常工作。

知道为什么会这样吗?

【问题讨论】:

如果您在新旧版本的应用中使用相同的 ProductID,应该没有任何问题。 IAP 仅与 ProductID 和用户的 AppleID 相关,与应用版本无关。所以我猜是IAP沙盒环境的问题。 当使用 IAP 购买/恢复产品时,无论是否购买了特定的 SKProduct,您都应该在本地存储(例如 NSUserDefaults)。这不是由 IAP 系统本身完成的。 嗨,erkanyildiz,是的,我正在使用沙箱进行测试。你的意思是它不能仅仅因为 appleID 是测试帐户而起作用吗? 嗨 basvk,我确实使用 NSUserDefaults,但是在删除应用程序后它就消失了,所以这不是问题。如果我购买新版本的产品并删除应用程序并重新安装并恢复,则恢复工作。 【参考方案1】:

自己找到解决方案,与测试账号无关。必须为更新的应用程序提供一个新的版本号,这意味着从 xcode 构建将不起作用,它必须是具有更新版本号的临时版本。 我以前没有遇到过这样的问题。我猜苹果最近改变了他们的政策。

【讨论】:

以上是关于在更新的应用程序上恢复旧购买的应用程序内产品的主要内容,如果未能解决你的问题,请参考以下文章

恢复应用内购买

更新Mac应用程序,SwiftyStoreKit后恢复购买不起作用

尽管没有iTunes帐户登录,iOS仍会恢复应用内购买

iOS 11.1.2 中的 Apple 应用内购买错误

如何正确恢复应用内购买?

应用内购买 - 恢复购买