Это следующий вопрос к " При сбое покупки приложений с помощью MKStoreKit:« Проблема в конфигурации iTunes connect для продукта: xxx"
У меня похожая проблема, и я пытался сделать как с MKStoreKit, так и без него и получить похожее сообщение.
Контрольный список
С благодаря: http://troybrant.net/blog/2010/01/invalid-product-ids/
Включили ли вы внутриигровые покупки для своего идентификатора приложения?
YES
Вы проверили разрешение на продажу для вашего продукта?
YES
Вы подали (и при желании отклонили) двоичный файл вашего приложения?
YES
Идентификатор пакета .plist вашего проекта совпадает с идентификатором вашего приложения?
YES
Вы создали и установили новый профиль обеспечения для нового идентификатора приложения?
YES
Вы сконфигурировали свой проект для кодовой подписи с использованием этого нового профиля обеспечения?
YES
Вы строите для iPhone OS 3.0 или выше?
YES. iOS4.2 и выше.
Используете ли вы полный идентификатор продукта при оформлении запроса SKProductRequest?
YES. Также только сам идентификатор продукта без обратного домена
Вы ожидали несколько часов с момента добавления продукта в iTunes Connect?
YES. В нем написано «В ожидании обзора» и сделал за последние 4-5 дней
Активны ли ваши банковские реквизиты в iTunes Connect?
NO. Это клиентский проект, и я только проверяю, работает ли он. Нужны ли банковские реквизиты для проверки?
РЕДАКТИРОВАТЬ: Я изменил это сейчас. Но я не понимаю, почему мне нужно это делать только для проверки песочницы.
Вы пытались удалить приложение с вашего устройства и переустановить?
* * ДА тысяча семьдесят-девять
Является ли ваше устройство взломанным?
NO
Обозначение приложения правильное
Некоторые примеры, которые я видел, используют эту запись:
com.domain.APP_ID.PRODUCT_TO_BUY
Но другие используют
com.domain.PRODUCT_TO_BUY
Что правильно?
В своем коде я попытался использовать полную нотацию и только сам идентификатор продукта, но все еще получаю ту же проблему «Неверный идентификатор продукта».
Разработчик отклонен
Пакет приложений (релиз) находится в iTunes Connect, и я "разработчик отклонил" пакет.
Изображение:
![App developer rejected](https://i.stack.imgur.com/qCuPM.png)
В ожидании обзора?
В моих покупках из приложения у меня есть 1 продукт, автоматически обновляемая подписка. Очищено для продажи; однако он «ожидает рассмотрения» и не горит зеленым светом.
Фото:
![waiting for review](https://i.stack.imgur.com/8Lpdu.png)
Я создал это почти 4-5 дней назад, и он все еще помечен как "Ожидание обзора" ??
Мне интересно, было ли мое приложение "отклонено разработчиком", влияет ли это на "Ожидание проверки" в автоматически обновляемой подписке?
Я ничего не изменил в этом предмете.
Согласно различным статьям, мне нужно подождать 24-48 часов, прежде чем я смогу его использовать?
Но нужно ли ждать, пока это будет принято или подсвечено зеленым, прежде чем я смогу использовать его в своем тестировании?
Банковские реквизиты
Я не заполнил банковские реквизиты, потому что это приложение для клиента. Нужно ли мне заполнять банковские реквизиты, прежде чем я смогу продолжить их тестирование?
Согласно этим документам: http://developer.apple.com/library/ios/#technotes/tn2259/_index.html требуются банковские реквизиты?
Нужно ли входить в iTunes на моем устройстве под тестовой учетной записью перед запуском приложения?
Мне интересно, может ли кто-нибудь прояснить эти вопросы? Может быть, это так же просто, как ждать, пока покупка в приложении станет «зеленой», или, может быть, я пропустил шаг?
Примечание. Это происходит независимо от того, использую ли я MKStoreKit или следующий код.
Спасибо.
Мой код (это не версия MKStoreKit)
#define kMySubscriptionFeature @"uk.co.samplewebsite.myappproject.sub1"
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view from its nib.
self.title = @"Manage Subscriptions";
if ([SKPaymentQueue canMakePayments])
{
// Display a store to the user.
//[MKStoreManager sharedManager];
//NSLog(@"purhcasable = %@", [[MKStoreManager sharedManager] purchasableObjectsDescription] );
[self requestProUpgradeProductData];
}
else
{
// Warn the user that purchases are disabled.
NSString *message = @"In-app purchases are disabled. Please review your settings";
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Error" message:message delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView show];
[alertView release];
} // end if
}
#pragma mark - StoreKit Delegate
- (void) requestProductData
{
SKProductsRequest *request= [[SKProductsRequest alloc] initWithProductIdentifiers: [NSSet setWithObject:kMySubscriptionFeature]];
request.delegate = self;
[request start];
}
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
NSArray *myProduct = [[NSArray alloc] initWithArray:response.products];
for(SKProduct *item in myProduct)
{
NSLog(@"Product title: %@" , item.localizedTitle);
NSLog(@"Product description: %@" , item.localizedDescription);
NSLog(@"Product price: %@" , item.price);
NSLog(@"Product id: %@" , item.productIdentifier);
}
for (NSString *invalidProductId in response.invalidProductIdentifiers)
{
NSLog(@"Problem in iTunes connect configuration for product: %@" , invalidProductId);
}
[myProduct release];
// populate UI
[request autorelease];
}
Edit:
Как отказоустойчивый, я добавил банковские реквизиты на всякий случай, но я не понимаю, почему это может вызвать проблемы.
Я также удостоверился, что загрузил и отклонил пакет выпуска приложения, а не adhoc; хотя я не знаю, имеет ли это какое-то значение.