2015-09-13 11 views
1

У меня есть приложение в магазине приложений и подтвердили, что мои покупки в приложении работают для последней официальной версии. Однако некоторые из моих пользователей приложений хитрые, и у них есть неизданная версия iOS. Должны ли покупки приложений в приложении по-прежнему работать для бета-версий iOS? Поскольку, по крайней мере, один, возможно, два пользователя сообщают, что их покупки в приложении не отмечены как приобретенные правильно.Должны ли в приложениях покупать работу для пользователей, у которых есть бета-версия iOS?

Если вы хотите специфики, ничего не загружается, когда мое приложение отмечает товар как приобретенный. Он просто пишет файл в каталоге docs и дает им неограниченные игры.

UPDATE:

Я прочитал в разработчиков форумах Apple, которые

«магазин комплект потока», представляет собой процесс, взятый в момент попытки приобрести «в приложение покупки ", так что набор для магазина определяет , что существует проблема с учетной записью storekit пользователя - для пример, когда информация о кредитной карте истекла. Когда обнаружена эта проблема , пользователю предоставляется возможность перейти в приложение App Store , чтобы обновить информацию об учетной записи. Раньше было, что StoreKit предупредил пользователя и попросил устранить проблему в приложении App Store, когда проблема была обнаружена. Начиная с iOS 7, эта проверка не будет беспокоить пользователя до тех пор, пока не будет предпринята действительная плата - либо при запросе приложения для загрузки, либо при попытке пользователя выполнить при покупке приложения.

Следовательно, я думаю, что мой код, возможно, заканчивал транзакции раньше. Вот что я считаю своим соответствующим кодом с отмеченными моими подозрениями. Может кто-то дважды проверить или уточнить?

- (void)failedTransaction:(SKPaymentTransaction *)transaction //Working 
{ 
    //NSLog(@"failedTransaction."); 
    if (transaction.error.code != SKErrorPaymentCancelled) 
    { 
     // error! 
     NSLog(@"Transaction error: %@", transaction.error.localizedDescription); 
     [self finishTransaction:transaction wasSuccessful:NO]; //TODO: Remove this, it may be causing the bug with transaction errors in Multi Path Audio 1.1.4 
    } 
    else 
    { 
     //NSLog(@"failedTransaction, user just cancelled."); 
     // this is fine, the user just cancelled 
     [[SKPaymentQueue defaultQueue] finishTransaction:transaction]; 
    } 
} 
+1

За исключением возможных ошибок в бета-версии 9.1, да, IAP должен работать. Возможно, ваш код делает некоторые плохие предположения, которые выходят из строя под iOS 9. Покажите свой соответствующий код в своем вопросе, чтобы люди могли видеть, что вы делаете что-то неправильно. – rmaddy

+0

Хорошо, спасибо! Я обновил свой вопрос с некоторым кодом подозреваемого и дополнительной информацией. –

+0

С другой стороны, бета означает бета-версию, которая означает «нет права жаловаться, если материал не работает». – gnasher729

ответ

1

Вы АБСОЛЮТНО ДОЛЖНЫ называть finishTransaction ТОЛЬКО когда вы доставляете товар пользователю. Последовательность действий: Apple берет деньги пользователя. Вы доставляете товар. Вы называете finishTransaction. Если вы не доставляете товар, все в порядке, Apple запомнит и снова спросит вас , пока не назовете finishTransaction. Если вы вызываете finishTransaction без доставки, вы обманываете клиента.

Если пользователь взаимодействует с магазином, то он не будет передан вам, не передав деньги, вам никогда не расскажут о покупке.

+0

Я прочитал здесь, в StackOverflow, а также пару других мест, которые нужно назвать finishTransaction в трех местах ... SKPaymentTransactionStatePurchased, SKPaymentTransactionStateRestored, SKPaymentTransactionStateFailed. Это верно? http://stackoverflow.com/questions/4988663/skpaymentqueue-addtransactionobserver-asking-for-app-store-password-on-startup-a –

+0

Поэтому я, возможно, создаю новый тест, чтобы обеспечить доставку товаров до вызова finishTransaction. Спасибо за совет! –

+0

В конечном итоге это был правильный ответ.Логика My Store Kit не вернула точную реакцию в iOS 9 из-за того, как я ее проверял, и мне пришлось добавить дополнительную логику, чтобы убедиться, что товар был куплен и доставлен до завершения транзакции. Благодаря! –

 Смежные вопросы

  • Нет связанных вопросов^_^