我已经在一个示例应用程序中测试了iOS的In App Purchases。我需要弄清楚是否可以在启动时立即调用refreshReceipt
API,以检查用户是否有资格使用某些试用期等。
我已经在AppDelegate的refreshReceipt
方法中调用了application:didFinishLaunching:options
,但是它要求我提供AppStore凭据,基本上是沙盒用户的密码。我没有从Apple文档中读取到这种现象。是由于沙箱环境而发生的事情还是在生产环境中发生的事情。
此外,Restore Purchase
是否触发AppStore登录警报。苹果文档说可以,但是最近我选择了该选项时,发现手机上的音乐应用程序之一没有要求提供凭据。可能是他们没有调用StoreKit的restorePurchase API,而是使用了自己的机制。
答案 0 :(得分:0)
只要设备上没有收据,您都会收到登录提示。在沙盒中,没有安装收据,因此您总是会看到弹出窗口。您还应该注意,除非您已购买,否则在沙箱中刷新收据后,收据仍然不存在。
如果用户已登录其iTunes帐户,则收据应该始终在生产中。
对于恢复,我认为它遵循相同的逻辑(如果没有收据,则要求提示),但这与Apple所说的相矛盾。