iOS StoreKit 最佳实践

iOS StoreKit best practice

根据 Apple 文档,最佳实践规定 SKPaymentQueue 观察者应添加到 didFinishLaunchingWithOptions 中并在 applicationWillTerminate 中删除。但是我注意到 applicationWillTerminate 不能保证被调用, applicationDidEnterBackground 可能会被调用。这样安全吗?

applicationDidEnterBackground当然不能替代applicationWillTerminate。前者表示你的应用已经进入后台,将被挂起。当您的应用即将 return 到前台时 applicationWillEnterForeground 将被调用。

如果调用 applicationWillTerminate,则您的应用程序将终止。重新启动时,将调用 didFinishLaunchingWithOptions

确实applicationWillTerminate不会一直被调用,但是iOS无论如何也无法向终止的应用程序传递支付交易,所以交易观察者可能不会总是被调用并不重要被删除。