при покупке приложения - SKProduct Fail - PullRequest
1 голос
/ 13 марта 2012

Я реализую этот код:

if ([SKPaymentQueue canMakePayments])
{
    // Display a store to the user.
    NSLog(@"Device Can Make Payments");
    SKProductsRequest *ProductRequst = [[SKProductsRequest alloc]initWithProductIdentifiers:[NSSet setWithObjects:@"slalomtfcoins", nil]];
    ProductRequst.delegate = self;
    [ProductRequst start];
}
else {
    // Warn the user that purchases are disabled.
    NSLog(@"Device Can't Make Payments");
    UIAlertView *thealert = [[UIAlertView alloc]initWithTitle:@"Your Device Limited" message:@"we have noticed that you device restrictions setting are currently limited. you can change it ny going to Settings -> General -> Restrictions and turn it off" delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
    [thealert show];
    [thealert release];
}



-(void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{
SKProduct *VailProduct = nil;
NSLog(@"%d",[response.products count]);
int count = [response.products count];
if (count>0) {
    VailProduct = [response.products objectAtIndex:0];
    NSLog(@"Products are availble");
} else if (!VailProduct){
    NSLog(@"Products are Not availble");
}    

}

и журнал печатает «Продукты недоступны». идентификатор пакета в моем p.list верен и идентификатор продукта такой же, как у itunes connect.

в чем проблема?

спасибо

Ответы [ 4 ]

1 голос
/ 14 марта 2012

Что попробовать.

  • удалить, а затем снова загрузить профили инициализации в xcode и на устройстве
  • удалить приложение с устройства
  • выйти из магазина
  • Элемент списка
  • аппаратная перезагрузка устройства
  • Сборка и запуск приложения
  • Повторите попытку

Еще одно исправление, которое яобнаружил, что, вероятно, не поможет, но вы можете попробовать создать нового пользователя тестовой учетной записи и попробовать это.Так как ваша проблема просто проверяет, а не покупает, это, вероятно, не поможет.Я просто упоминаю об этом на случай, если у вас возникнут проблемы в будущем.

Кроме того, если вы делаете это впервые, вы должны дважды проверить идентификатор приложения и идентификаторы продукта, чтобы быть уверенным.

1 голос
/ 14 марта 2012

Если вашего устройства нет в магазине США, кажется, есть ошибка в песочнице, которую можно исправить, перейдя в iTunes в устройстве и переключив магазины.При повторной попытке покупки в приложении должно появиться приглашение вернуться в другой магазин.

Также убедитесь, что вы проводите тестирование на устройстве, а не на симуляторе, и используете тестовую учетную запись, которую вы используете.созданный через iTunes Connect.

1 голос
/ 13 марта 2012

запускаете ли вы приложение из xcode ?, если вы используете «enviroment-sandbox» для невыпущенных приложений, использующих покупку из приложения, вам нужно запустить его из xcode, чтобы использовать «enviroment-sandbox»

0 голосов
/ 19 октября 2012

В xCode 4.5.1 я уверен (потому что я стараюсь), вы можете использовать iPhone Simulator для всего процесса покупки в приложении.
Это только немного медленно и иногда идет по тайм-ауту, поэтому вы должны повторить попытку купить или перезапустить симуляцию (в Симуляторе и в iPhone).
В коде вы можете установить Bool и присвоить ему значение TRUE после успешного процесса покупки. Используйте NSLog, чтобы убедиться, что все идет хорошо.
После этого вы можете использовать этот bool для всех ваших нужд.

Еще одна вещь: вы должны быть уверены, что идентификатор продукта является полностью правильным, например:
com.example.myapp.purchase1
com.example.myapp.purchase2
...
Поместите эти значения в iTunes Connect и в ваше приложение.

Возможно, вам придется немного подождать обновления iTunes (для меня, я не знаю почему, время ожидания действительно короткое: всего пара минут или даже меньше)

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