IAP не работает, если размещен контент, но работает нормально, если рассматривается как обычный не расходный материал

Я пытаюсь реализовать IAP размещенного контента на iOS 6.0.

Не публикуя кучу кода, мой код был взят из руководств raywenderlich http://www.raywenderlich.com/21081/introduction-to-in-app-purchases-in-ios-6-tutorial и http://xinsight.ca/blog/iap-content-download-in-ios6/. Этот код отлично подходит для покупки обычных непотребных предметов.

Я создал новый элемент IAP с размещенным контентом и загрузил его через xcode (используя метод, описанный во второй ссылке выше).

Когда я иду купить товар, появляется предупреждение, и я нажимаю кнопку «Купить». Вскоре после этого моя транзакция не удалась, и ниже вызывается случай SKPaymentTransactionStateFailed:

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
{

    for (SKPaymentTransaction * transaction in transactions) {

        switch (transaction.transactionState){
            case SKPaymentTransactionStatePurchased: {

                if (transaction.downloads) {
                    [[SKPaymentQueue defaultQueue] startDownloads:transaction.downloads];
                } else {
                    // unlock features
                    //[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                    [self completeTransaction:transaction];
                }    
                break;               
            }
            case SKPaymentTransactionStateFailed: {
                if (transaction.downloads) {
                    NSLog(@"transaction failed... but found downloads");
                }

                [self failedTransaction:transaction];
                break;
            }
            case SKPaymentTransactionStateRestored: {

                if (transaction.downloads) {
                    [[SKPaymentQueue defaultQueue] startDownloads:transaction.downloads];
                } else {
                    // unlock features
                    //[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
                    [self restoreTransaction:transaction];
                }

                break;
            }
            default:
               break;
       }
   }
}

Код transaction.error.code выглядит как SKErrorPaymentCancelled.

Если я изменю характер этого элемента IAP в iTunesConnect, чтобы он не содержал размещенный контент, покупка завершается нормально. Я не понимаю, что могло вызвать это.

Кто-нибудь, имеющий опыт работы с контентом, размещенным на IAP, знает о подводных камнях, о которых мне следует знать? Может быть, это связано с тем, как я создал пакет размещенного контента? Я просто поместил все в группу вспомогательных файлов в xcode при создании пакета - проверка пакета архива в Finder показывает содержимое как:

/ dSYMs

/Info.plist

/ Products / Library / InAppPurchaseContent / ProductIDName / Contents / # содержание здесь #

/Products/Library/InAppPurchaseContent/ProductIDName/ContentInfo.plist

Это верно? После загрузки на нем написано «Ожидание снимка экрана», что, как я понимаю, правильно.


person chopsalot    schedule 24.06.2013    source источник


Ответы (1)


Я испытываю те же проблемы со своей стороны, для всего моего контента IAP, размещенного на серверах Apple, я также получаю ошибку SKErrorPaymentCancelled. Эта проблема, похоже, исходит от Apple, которая в настоящее время над ней работает.

Смотрите там больше обновлений:

https://devforums.apple.com/message/839428#839428

Песочница для iPhone storekit перестала работать

person Broco    schedule 25.06.2013
comment
Собирался приехать сюда и закрыть вопрос тем же постом. Кажется, они это исправили. Ваше здоровье. - person chopsalot; 26.06.2013