Sfproductsrequest всегда возвращает ноль
-
27-10-2019 - |
Вопрос
Я пытаюсь реализовать в покупке приложений в бесплатном приложении.
Я создал идентификатор ProductD «Test1» в рамках диспетчера покупок приложений в портале iTunes Connect.
Когда я делаю запрос на продукт следующим образом:
- (id)init {
NSSet *productIdentifiers = [NSSet setWithObjects:
@"test1",
nil];
if ((self = [self initWithProductIdentifiers:productIdentifiers])) {
}
return self;
}
- (id)initWithProductIdentifiers:(NSSet *)productIdentifiers
{
if ((self = [super init]))
{
// Store product identifiers
_productIdentifiers = [productIdentifiers retain];
// Check for previously purchased products
NSMutableSet * purchasedProducts = [NSMutableSet set];
for (NSString * productIdentifier in _productIdentifiers)
{
BOOL productPurchased = [[NSUserDefaults standardUserDefaults] boolForKey:productIdentifier];
if (productPurchased)
{
[purchasedProducts addObject:productIdentifier];
NSLog(@"Previously purchased: %@", productIdentifier);
}
NSLog(@"Not purchased: %@", productIdentifier);
}
self.purchasedProducts = purchasedProducts;
}
return self;
}
- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response {
NSLog(@"Received products results...");
self.products = response.products;
self.request = nil;
[[NSNotificationCenter defaultCenter] postNotificationName:kProductsLoadedNotification object:_products];
NSLog(@"%d",[self.products count]);
NSEnumerator *e = [self.products objectEnumerator];
id object;
while(object=[e nextObject])
{
NSLog(@"item");
NSLog(@"%s",(char*)object);
}
}
- (void)requestProducts {
self.request = [[[SKProductsRequest alloc] initWithProductIdentifiers:_productIdentifiers] autorelease];
_request.delegate = self;
[_request start];
}
Ответ всегда 0. Я не понимаю, что я делаю не так. Этот код пришел из учебника. Документация относительно покупок приложений, как правило, довольно запутанно, и весь процесс в iTunes Connect не дает мне уверенности.
Я думал, что приложение должно быть в сети для продажи для покупок приложений для работы. Тем не менее, я решил не включать в покупки приложений, но позвольте покупке приложения в приложении в iTunes Connect для просмотра. В процессе рассмотрения приложение было отклонено, потому что оно должно работать с покупками приложений для тестирования.
Но как мне тестировать покупки приложений, если список продуктов всегда будет на ноль?
Если кто -то с большим опытом может дать мне совет по этому поводу, так как я уже схожу с ума от этого!
Спасибо,
С моими наилучшими пожеланиями,
Нуно
Решение
Самым когерентным решением, которое я обнаружил в этой проблеме, был этот контрольный список. Он должен быть широко распространен, чтобы избежать того, что кто -либо, решающий ту же проблему, которая действительно занимает много времени и отчаянно:
- Вы включили покупки в приложении для идентификатора приложения?
- Вы проверили очистку на продажу для вашего продукта?
- Вы отправили (и, по желанию, отклонены) в двоичном приложении?
- Соответствует ли идентификатор пакета. PLIST вашего проекта?
- Вы сгенерировали и установили новый профиль обеспечения для нового идентификатора приложения?
- Вы настроили свой проект для кодирования, используя этот новый профиль обеспечения?
- Вы строите для iPhone OS 3.0 или выше?
- Вы используете полный идентификатор продукта при создании SkProductrequest?
- Вы ждали несколько часов с момента добавления вашего продукта в iTunes Connect?
- В вашем банке активна в iTunes Connect? (через Марк)
- Вы пробовали удалить приложение с вашего устройства и переустановить? (Via Gector, S3B, Alex O, Joe и Alberto)
- Ваше устройство Jailbroken? Если это так, вам нужно вернуть джейлбрейк для работы IAP. (через мой бог, римлян и Xfze)
- Вы выходили из учетной записи Real Itunes?
- Вы пробовали перезагрузить устройство?
- Вы на устройстве? (Не будет работать на симуляторе)
Кредиты идут Трой Брант
Другие советы
Посмотрите здесь, это ответило на все мои вопросы (и фреймворки тоже прост в использовании :-):
http://blog.mugunthkumar.com/coding/iphone-tutorial-%E2%80%93-in-appcases/
Но я должен сказать, что вся покупка в приложении-это лаваш-мое приложение только что было выпущено, и, конечно, я загрузил его и проверил экран покупки в приложении. Угадай, что, он появился совершенно пустым!
После некоторого чтения кажется, что даже если все будет принято и готово к продаже, продуктам покупки в приложении все еще нужно время, чтобы стать доступным в Интернете - через 3 часа он наконец сработал ...
РЕДАКТИРОВАТЬ:
Вам необходимо создать покупку в приложении для вашего приложения и установить ее для выяснения для продажи в iTunes Connect. Вам еще не нужно загружать скриншот или уже просмотреть его, чтобы иметь возможность проверить его в режиме разработки.
Как вы назвали покупку в iTunes Connect? Обычно вам следует использовать имя com.companyname.productname.purchaseName и имя, которое вы запрашиваете из вашего приложения, чтобы быть точно таким же.