1

アプリに iAP を追加したところ、エラーが発生しました。

- (void)getProductID { //runs on viewdidload
    if ([SKPaymentQueue canMakePayments]) {
        SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithObjects:_productID, nil]];
        request.delegate = self;

        [request start];
    } else {
        [[[UIAlertView alloc] initWithTitle:@"Serpentine" message:@"Error: Could not connect to store. Try enabling in-app-purchases in settings." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];

        [self couldNotConnectToStore];
    }

}

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {
    for (SKPaymentTransaction *transaction in transactions) {
        switch (transaction.transactionState) {
            case SKPaymentTransactionStatePurchased:[self unlockPurchase];
                [[SKPaymentQueue defaultQueue] finishTransaction:transaction];

            case SKPaymentTransactionStateFailed:NSLog(@"Transation Failed");
                [[SKPaymentQueue defaultQueue] finishTransaction:transaction];

            default:break;
        }
    }
}

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
    NSArray *products = response.products;

    if (products.count != 0) {
        _product = products[0];
        _allowPurchase = YES;
    } else {
        [[[UIAlertView alloc] initWithTitle:@"Serpentine" message:@"Error: Could not connect to store" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];//this line of code runs a second after the controller opens

//****************** error on line above *********************************

        [self couldNotConnectToStore];
    }

    products = response.invalidProductIdentifiers;

    for (SKProduct *product in products) {
        NSLog(@"Product not found: %@", product);
    }
}


- (IBAction)purchaseButtonPressed:(UIButton *)sender {
    if (sender.tag == 1) {
        //buy 20
        _productID = @"com.piguygames.serpentine.buy20";

        SKPayment *payment = [SKPayment paymentWithProduct:_product];
        [[SKPaymentQueue defaultQueue] addPayment:payment];

    } else if (sender.tag == 2) {
        //buy 45
    } else if (sender.tag == 3) {
        //buy 100
    } else if (sender.tag == 4) {
        //double
    } else if (sender.tag == 5) {
        //remove ads
    }
}

注:コントローラーには他のコードがいくつかありますが、関連性はないと思います。

アプリ内購入を iTunes Connect に追加しましたが、「送信準備完了」と表示されます。じゃあここでいいの?また、同じサイトで、アプリの購入を機能させるには、アプリの新しいバージョンを送信する必要があるという警告が表示されました。最初にアプリを提出し、アプリで iAP を無効にしてから、後の更新で iAP をリリースすることにしました。iAP をテストするには、新しいバージョンを提出する必要がありますか?

とにかく、これまでに見られる問題はありますか?

さらに必要な情報がある場合は、さらに情報を求めてください。私はこのトピックの初心者です。ありがとう

4

1 に答える 1

1

iTunes Connect で作成したテスト アカウントでない限り、設定アプリですべての iTunes アカウントからサインアウトしていることを確認します。私は最近、これとまったく同じ問題を抱えていました。それが私がそれを解決した方法です。

于 2013-10-07T10:32:06.123 に答える