0

App Store でゲームをリリースしましたが、レシートの確認中に次のコードでいくつかのクラッシュが発生します。

-(BOOL)isTransactionAndItsReceiptValid:(SKPaymentTransaction *)transaction
{
    if (!(transaction && transaction.transactionReceipt && [transaction.transactionReceipt length] > 0))
    {
        // Transaction is not valid.
        return NO;
    }

    // Pull the purchase-info out of the transaction receipt, decode it, and save it for later so
    // it can be cross checked with the verifyReceipt.
    NSDictionary *receiptDict       = [self dictionaryFromPlistData:transaction.transactionReceipt];
    NSString *transactionPurchaseInfo = [receiptDict objectForKey:@"purchase-info"];

    ...

問題は、それが でreceiptDictはないNSDictionaryため、コードが途中でクラッシュすることです。どうすればいいの?取ることができる他の形式はありtransaction.transactionReceiptますか?エラー?

これは非常にまれなことですが、ユーザーの 1% が何かを購入しようとしますか? これは人々がハッキングした結果ですか?

であることを確認するためにチェックインしましたNSDictionaryが、より深い問題があるため、それを見つけたいと思います。

4

2 に答える 2

0

プロジェクトに領収書の検証を追加しました。iOS のバージョンはこちらで確認できます: https://github.com/soomla/ios-store

于 2013-11-05T13:24:36.040 に答える