SFProductsRequest всегда возвращает ноль - PullRequest
0 голосов
/ 17 февраля 2012

Я пытаюсь реализовать в приложении покупки в бесплатном приложении.

Я создал идентификатор продукта "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 для проверки. В процессе проверки приложение было отклонено, поскольку оно должно работать с покупками в приложении для тестирования.

Но как мне проверить покупки приложений, если список товаров всегда равен нулю?

Если кто-то с большим опытом может дать мне совет по этому поводу, так как я уже схожу с ума от этого!

Спасибо

С наилучшими пожеланиями,

Нуно

Ответы [ 2 ]

3 голосов
/ 05 марта 2012

Самым последовательным решением, которое я нашел для этой проблемы, был этот контрольный список.Он должен быть широким, чтобы никто не проходил мимо той же проблемы, которая действительно отнимает много времени и отчаяния:

  • Включили ли вы покупки внутри приложения для своего идентификатора приложения?
  • Вы проверили разрешение на продажу для своего продукта?
  • Вы отправили (и, возможно, отклонили) бинарный файл приложения?
  • Соответствует ли идентификатор пакета .plist вашего проекта вашему идентификатору приложения?
  • Вы сгенерировали и установили новый профиль обеспечения для нового идентификатора приложения?
  • Вы настроили свой проект для кодирования с использованием этого нового профиля обеспечения?
  • Вы создаете для iPhone OS 3.0или выше?
  • Используете ли вы полный идентификатор продукта при создании запроса SKProductRequest?
  • Вы ожидали несколько часов с момента добавления продукта в iTunes Connect?
  • Является ли ваш банкдетали активны в iTunes Connect?(через Mark)
  • Вы пытались удалить приложение с вашего устройства и переустановить?(через Гектора, S3B, Алекса О, Джо и Альберто)
  • Ваше устройство взломано?Если это так, вам нужно отменить джейлбрейк для IAP для работы.(через Боже, Роман, и xfze)
  • Вы вышли из реальной учетной записи iTunes?
  • Вы пробовали перезапустить устройство?
  • Вы на устройстве?(Не будет работать на симуляторе)

Кредиты идут на Трой Брант

0 голосов
/ 17 февраля 2012

Посмотрите здесь, чтобы ответить на все мои вопросы (и фреймворк также прост в использовании: -):

http://blog.mugunthkumar.com/coding/iphone-tutorial-%E2%80%93-in-app-purchases/

Но я должен сказать, что вся покупка в приложении - это PITA - мое приложение только что выпустили, и, конечно, я скачал его и проверил экран покупки в приложении. Угадайте, что это оказалось совершенно пустым!

После некоторого прочтения кажется, что даже если все будет принято и готово к продаже, продуктам для покупки из приложения все еще нужно некоторое время, чтобы стать доступными онлайн - через 3 часа он наконец заработал ...

EDIT:

Вам необходимо создать покупку в приложении для своего приложения и настроить ее на продажу в itunes connect. Вам не нужно загружать снимок экрана или его уже просмотрели, чтобы иметь возможность проверить его в режиме разработки.

Как вы назвали покупку в itunes connect? Обычно вы должны использовать имя com.companyname.productname.purchasename, и имя, которое вы запрашиваете в своем приложении, должно совпадать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...