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