iPhone - 应用内购买:记录购买

Oli*_*ver 2 memory iphone storage uninstall in-app-purchase

我在这里和其他地方读过以下内容:

最后,在提供该功能后,您应该"记住"用户已购买该应用.Apple推荐的方法是使用NSUserDefaults,就像存储设置一样.

但是......如果我没错,当您从手机中删除某个应用程序(但不是从iTunes中删除)时,以及稍后从iTunes恢复该应用程序时,将删除这些首选项并将其恢复为默认值.是对的吗 ?所以我说得对,如果用户从手机中删除应用程序,几周后从iTunes资料库中重新安装应用程序,其应用内购买将会丢失吗?

Ben*_*ton 5

是的,你是对的.当用户删除应用程序时,NSUserDefaults也会被删除.但是,应用程序商店有一个方便的恢复购买功能,您可以请求告知苹果为当前用户记录的购买.

似乎没有一种很好的方法可以检测到需要恢复购买(至少从我在这里看到的内容),大多数开发人员似乎只是提供了一个手动启动恢复过程的按钮.

还有一种替代方法,即将用户购买存储在钥匙串中,当卸载应用程序时,该钥匙串(至少现在)不会被删除.我已经在iOS 4.3上证实了这种情况 - 虽然它可能不会永远保持这种状态.

下面是一些示例代码,演示了恢复购买和使用钥匙串保存购买