Это дополнительный вопрос к « Ошибка при покупке приложений с помощью MKStoreKit:« Проблема в конфигурации подключения iTunes для продукта: xxx »
У меня аналогичная проблема, и я пытался сделать как с MKStoreKit, так и без него, и получил аналогичное сообщение.
Контрольный список
С благодарностью: http://troybrant.net/blog/2010/01/invalid-product-ids/
Включили ли вы покупки в приложении для своего идентификатора приложения ?
ДА
Вы проверили наличие разрешения на продажу для своего продукта?
ДА
Отправили ли вы (и при желании отклонили) двоичный файл приложения?
ДА
Имеется ли у вашего проекта пакет .plist Идентификатор соответствует вашему идентификатору приложения?
ДА
Вы сгенерировали и установили новый профиль обеспечения для нового идентификатора приложения?
ДА
Вы настроили свой проект для кодовой подписи с использованием этого нового профиля обеспечения?
ДА
Вы собираетесь для iPhone OS 3.0 или выше?
ДА. iOS4.2 и выше.
Используете ли вы полный идентификатор продукта при создании SKProductRequest?
ДА. Также только идентификатор продукта без обратного домена
Вы ждали несколько часов с момента добавления продукта в iTunes Connect?
ДА. В нем написано «Ожидание проверки», и это было сделано в течение последних 4-5 дней
Активны ли ваши банковские реквизиты в iTunes Connect?
НЕТ. Это клиентский проект, и я только тестирую его, чтобы убедиться, что он работает.Нужны ли мне банковские реквизиты для проверки?
РЕДАКТИРОВАТЬ: Я изменил это сейчас. Но я не понимаю, зачем мне это делать только для тестирования песочницы.
Пробовали ли вы удалить приложение со своего устройства и переустановить?
ДА
Взломано ли ваше устройство?
НЕТ
Нотация приложения верна
В некоторых примерах, которые я видел, используется эта нотация: com.domain.APP_ID.PRODUCT_TO_BUY
Но другие используют com.domain.PRODUCT_TO_BUY
Что правильно?
В моем коде я попытался использовать полную нотацию и просто сам идентификатор продукта, но по-прежнему возникает та же проблема «Недействительный идентификатор продукта».
Разработчик отклонил
Пакет приложений (выпуск) находится в iTunes Connect, и я «разработчик отклонил» этот пакет.
Изображение:
Ожидаете рассмотрения?
В моих покупках в приложении у меня есть 1 продукт - автоматически возобновляемая подписка. Сдан на продажу; однако это «Ожидает проверки» и не горит зеленым светом.
Изображение:
Я создал это почти 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];
}
Изменить:
На всякий случай я добавил банковские реквизиты, но не понимаю, почему это может вызвать проблему.
Я также удостоверился, что загрузил и отклонил пакет выпуска приложения, а не специальный; хотя я не знаю, имеет ли это значение.