アプリ ストアの領収書の処理に関する WWDC 2013 の講演では、iOS アプリの場合、領収書の検証コードをできるだけ早く呼び出す必要があることが提案されています。前でもapplication:didFinishLaunchingWithOptions:
- つまりmain()
関数内で。これが機能する方法は次のようになると思います。
int main(int argc, char *argv[]) {
@autoreleasepool {
validateReceiptMethod(); // <---- HERE
int retVal = UIApplicationMain(argc, argv, nil, nil);
return retVal;
}
}
UIApplicationMain()
メソッドはアプリを起動して を呼び出すという考え方ですapplication:didFinishLaunchingWithOptions:
。validateReceiptMethod()
afterを付けると、UIApplciationMain()
実行されません。
とにかく、これはうまく機能しています。しかし、領収書がない場合はどうなりますか?SKReceiptRefreshRequest
次に、アプリ ストアから新しいアプリを取得するために電話する必要がありますが、これで問題ありません。ただし、このコードを の前UIApplciationMain()
に実行すると、UI が表示される前にも実行されます。では、ユーザーに Apple ID のログイン ダイアログを表示するとどうなるでしょうか。メソッドSKReceiptRefreshRequest
から呼び出すことさえ可能ですか?main()