У меня проблема с отправкой приложения в Apple Store.Кажется, они не хотят, чтобы я создавал автоматически обновляемую подписку для покупки в приложении.Они хотят, чтобы я создал непотребляемый тип покупок в приложении.Вот все сообщение:
Ответ от Apple:
Спасибо за повторную отправку.После дальнейшей проверки мы обнаружили, что сохраняется следующая проблема:
Рекомендация 3.1.2 - Бизнес - Платежи - Подписки
Ваша покупка в приложении в настоящее время помечена как автоматическое продление подписки.Тем не менее, было бы более целесообразно использовать непотребляемый тип продукта покупки в приложении, потому что продукт используется для разблокировки функций приложения.Непотребляемые товары приобретаются пользователями только один раз и всегда доступны на всех устройствах, связанных с учетной записью iTunes этого пользователя.Автоматически обновляемые подписки предназначены для периодических приложений, таких как журналы и газеты.
Следующие шаги
Тип продукта нельзя изменить после создания продукта для покупки в приложении.Поэтому вам нужно будет создать новый продукт для покупок в приложении с правильным типом продукта.
Чтобы создать новые покупки в приложении:
- Войдите в iTunes Connect
- Нажмите «Мои приложения»
- Выберите ваше приложение
- Нажмите «Функции» для создания новых покупок в приложении
- Нажмите Сохранить
- После того, как вы завершили все изменения, нажмите кнопку «Отправить на проверку» вв верхней части страницы информации о версии приложения.
Текущие продукты будут отображаться как «Отклонено» в iTunes Connect.
Ресурсы
Подробнее о том, как предлагать покупки в приложении, см. в Справке разработчика iTunes Connect.
Примечание. Приложения, предлагающие продукты для покупки в приложении, которые должны быть восстановлены, должны включать функцию «Восстановление».Следующие типы покупок в приложении должны быть восстанавливаемыми:
- непотребляемые товары
- автоматическое продление подписки
- бесплатные подписки
Для получения дополнительной информации см. Раздел «Восстановление приобретенных товаров» в-Приобретение Руководство по программированию.
Я не понимаю, потому что они говорят, что Автообновление подписки предназначены для периодических приложений, таких как журналы и газеты. , но Deezer, Spotify, NetFlix, LinkedIn и т. Д. Не являются журналами и газетами, и они автоматически продлевают подписку.
Может быть, мой код не подходит для этого типа подписки?Если это так, вот мой код:
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions{
for(SKPaymentTransaction *transaction in transactions){
//if you have multiple in app purchases in your app,
//you can get the product identifier of this transaction
//by using transaction.payment.productIdentifier
//
//then, check the identifier against the product IDs
//that you have defined to check which product the user
//just purchased
switch(transaction.transactionState){
case SKPaymentTransactionStatePurchasing: NSLog(@"Transaction state -> Purchasing");
//called when the user is in the process of purchasing, do not add any of your own code here.
break;
case SKPaymentTransactionStatePurchased:
//this is called when the user has successfully purchased the package (Cha-Ching!)
[self doMonthlySubscription]; //you can add your code for what you want to happen when the user buys the purchase here, for this tutorial we use Monthly Subscription
[self viewDidAppear:NO];
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
NSLog(@"Transaction state -> Purchased");
break;
case SKPaymentTransactionStateRestored:
NSLog(@"Transaction state -> Restored");
//add the same code as you did from SKPaymentTransactionStatePurchased here
[self doMonthlySubscription]; //you can add your code for what you want to happen when the user buys the purchase here, for this tutorial we use Monthly Subscription
[self viewDidAppear:NO];
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
break;
case SKPaymentTransactionStateFailed:
//called when the transaction does not finish
if(transaction.error.code == SKErrorPaymentCancelled){
NSLog(@"Transaction state -> Cancelled");
//the user cancelled the payment ;(
}
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
break;
case SKPaymentTransactionStateDeferred:
NSLog(@"Deferred");
break;
}
}
}
.
- (void)doMonthlySubscription{
[self.view setBackgroundColor:[UIColor blueColor]];
isMonthlySubscription = YES;
//set the bool for whether or not they purchased it to YES, you could use your own boolean here, but you would have to declare it in your .h file
[[NSUserDefaults standardUserDefaults] setBool:isMonthlySubscription forKey:@"isMonthlySubscription"];
//use NSUserDefaults so that you can load wether or not they bought it
[[NSUserDefaults standardUserDefaults] synchronize];
}
Я действительно не понимаю, в чем проблема?
(Ясобираюсь иметь их на телефоне, я буду обновлять, если больше информации)