2011-03-24 162 views
2

我读过here和其他地方以下的事情:iPhone - 应用程序内购买:记录购买

最后,提供了功能后, 你应该“记住”用户 购买了应用程序。苹果 推荐的方法是使用 NSUserDefaults的,你存储 设置相同的方式。

但是...如果我没有错,当你从你的手机中删除应用程序(而不是从iTunes),如果你从iTunes以后恢复之时,首选项被删除,并恢复其默认值。是对的吗 ? 所以,我在正确的说,这样做的方式,如果用户从手机中删除应用程序和一些几周后从iTunes资料库重新安装它,它的应用内购买会丢失?

回答

5

是的,你是正确的。当用户删除应用程序时,NSUserDefaults也会被删除。然而,应用程序商店有一个方便的恢复购买功能,您可以要求被告知,苹果已经记录了当前用户的购买。

似乎有不要被检测的购买需要恢复(至少从我所看到的在这里)的好方法,大多数开发商似乎只是提供一个按钮,手动启动恢复过程。

还有一种替代方案,即将用户购买的钥匙串存储在当前(至少现在)而不是当应用程序被卸载时被删除。我已经确认这是iOS 4.3的情况 - 尽管它可能不会永远保持这种状态。

这里是一些sample code that demonstrates both restore purchases, and using the keychain to save purchases