IPhone In-App Store Store Ошибка комплекта -1003 "Не удается подключиться к iTunes Store"

Я работаю над добавлением покупок в приложении и смог создать и протестировать покупки в приложении с помощью Store Kit (yay!). Во время тестирования я использовал свое приложение таким образом, чтобы приложение могло вызвать крах средней покупки (так что я предполагаю, что нормальный цикл получения paymentQueue: updatedTransactions и call finishTransaction был прерван).

Теперь я не могу успешно выполнить какие-либо транзакции и вместо этого получаю только транзакции с транзакциейState SKPaymentTransactionStateFailed, когда вызывается payQueue: updatedTransactions.

С транзакцией .error.code -1003 и транзакцией .error.localizedDescription является "Не удается подключиться к iTunes Store"!

Я попытался удалить все продукты из iTunesConnect и перестроил их с помощью разных идентификаторов, но это не помогло. Я также попытался использовать приложение App Store, чтобы действительно подключиться к реальному магазину приложений и загружать некоторые приложения, поэтому у меня есть возможность подключения. Наконец, я посетил приложение "Настройки: Магазин", чтобы убедиться, что я вышел из своей обычной учетной записи магазина приложений.

Ответ 1

У меня была аналогичная ситуация, и я отказался от сетевого трафика iPhone, чтобы узнать, что происходит. Я обнаружил, что вместо обычного песочницы был связан обычный магазин. Это помогло удалить приложение с устройства, сделать его чистым и построить/установить его снова. Очевидно, что-то с профилем развития пошло не так.

Обновление:. Чтобы сбросить сетевой трафик iPhone, не связанного с взломом, просто используйте Internet Sharing на вашем Mac и настройте iPhone для использования вашего Mac WiFi. Тогда tcpdump -n -i en1 на вашем Mac выполнит трюк.

Ответ 2

Если вы получаете сообщение об ошибке 0 "Не удается подключиться к iTunes Store" (что я понимаю, это не ошибка -1003, о которой спрашивал OP, но также ведет поиск в Интернете ошибки 0), это может быть вызвано двумя возможные проблемы:

  • Вы передаете неправильный идентификатор продукта. Если это произойдет, вы получите сообщение об ошибке 0 после вызова -[SKPaymentQueue addPayment:], прежде чем вы получите всплывающее окно с просьбой подтвердить платеж.
  • Ваш тестовый пользователь стал недействительным. Это может произойти, если вы случайно заходите в App Store со своим тестовым пользователем. Когда это произойдет, вы получите сообщение об ошибке 0 после ввода пароля для подтверждения платежа.

Чтобы исправить проблему №1, введите правильный идентификатор продукта. Чтобы устранить проблему №2, создайте нового тестового пользователя в iTunes Connect и, возможно, удалите старого пользователя теста.

Ответ 3

У меня была аналогичная проблема, я получал сообщение "Can not connect to iTunes Store" с кодом = 0. Именно так я решил это, попробовав все другие ритуальные советы, найденные в Интернете, от повторной загрузки моих сертификатов, чтобы сбросить все настройки моего устройства, чтобы пожертвовать девственной черной козой:

В итоговой сводке для приложения у меня был номер версии в поле "сборка", но ничего не было в поле "версия". Это показалось мне странным, поэтому я переместил номер версии с "build" на "version". Это привело к вышеупомянутой ошибке. Перемещение номера версии обратно в "сборку" разрешило ошибку.

Ответ 4

Добавьте нового тестового пользователя для своего приложения.

Ответ 5

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

Ответ 6

У меня была такая же ошибка, и после прочтения некоторых потоков на форумах разработчиков, я reset настроек на моем устройстве (Настройки → Общие → Reset → Reset Все настройки), который очистил его. Это казалось радикальным, но это сработало.

Ответ 7

У меня была такая же ошибка, которая, казалось, выскочила из ниоткуда (в один прекрасный день работала нормально, но на следующий день она давала мне эти ошибки примерно 2 раза в 3 раза, я пытался проверить свою покупку в приложении).

Затем я посетил App Store (при попытке сделать еще одну реальную покупку) и понял, что у них есть новое пользовательское соглашение, которое они хотели проверить. После того, как я это сделал, когда я вернулся в свое приложение и снова попробовал пробную покупку, он работал нормально и с тех пор не имел никаких ошибок. Поэтому я подозреваю, что получаю ошибку, потому что они хотели, чтобы я проверил новое пользовательское соглашение.

Теперь мне интересно только, есть ли способ для моей покупки в приложении переслать это приглашение моим пользователям, а не давать им таинственную ошибку?

Ответ 8

В SKPaymentTransactionState указано, что SKPaymentTransactionStateFailed до того, как ваш запрос будет добавлен в очередь сервера.

@class SKPayment;

enum {
    SKPaymentTransactionStatePurchasing,    // Transaction is being added to the server queue.
    SKPaymentTransactionStatePurchased,     // Transaction is in queue, user has been charged.  Client should complete the transaction.
    SKPaymentTransactionStateFailed,        // Transaction was cancelled or failed before being added to the server queue.
    SKPaymentTransactionStateRestored       // Transaction was restored from user purchase history.  Client should complete the transaction.
};
typedef NSInteger SKPaymentTransactionState;

И в SKPaymentTransaction Обсуждение ошибок в описании класса говорит:

Свойство error undefined, за исключением случаев, когда для параметра transactionState установлено значение SKPaymentTransactionStateFailed. Ваше приложение может прочитать свойство ошибки, чтобы определить, почему транзакция не удалась.

Итак, transaction.error.localizedDescription "Не удается подключиться к iTunes Store"! - это общее сообщение об ошибке. Я также регулярно получаю это сообщение об ошибке при тестировании моих покупок InApp.

Некоторые советы, которые вы можете сделать, это

  • Извлеките все продукты из магазина приложений с помощью SKProductsRequest и проверьте его response.products на свой запрос productIdentifier. для этого использования

    SKProductsRequest *request = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithArray:[objProducts allKeys]]];
    //pass product identifier array as argument
    [request start];  
    

И ответ Catch в:

    - (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response{
        NSArray *myProduct = response.products;
}

Итак, вы можете решить, можете ли вы общаться с магазином приложений. и ваш идентификатор продукта есть.

  1. Убедитесь, что вы используете тестовую учетную запись пользователя приложения для тестирования.
  2. И вы используете то же самое приложение-идентификатор, настроенное в App Purchase.

спасибо

Ответ 9

Что сработало для меня, так это удалить мое приложение из тестового устройства, а затем установить новую копию из Xcode.

Ответ 10

Я возился с магазином приложений, а затем вернулся к настройкам/магазину для выхода. Я делал это 3 раза, каждый раз пересматривая свое приложение и добавляя отладочный вывод NSLog, и теперь я могу продолжить тестирование кода покупки внутри приложения без ошибки -1003. Я не уверен, почему именно эта работа снова работает, но я уверен, что это не изменение кода с моей стороны, поскольку все, что я делал, это добавление NSLogs и повторное выполнение моего приложения.

Ответ 11

Да, если вы сначала подключили свой iPad/iPhone к другому компьютеру и теперь используете его на другом, вы абсолютно должны выйти из магазина на своем iPad, войти в систему с обычной учетной записью в ITunes на вашем MAC-адресе, затем Sync.

Кроме того, убедитесь, что ваш iPad "WIFI" включен...

Ответ 12

Я очистил все целевые объекты в XCode и вручную удалил приложение с моего устройства, а затем построил и запустил его из XCode и устранил аналогичную проблему (такое же сообщение об ошибке, но другой код ошибки: -1009)

Ответ 13

К сожалению, у меня возникла проблема, которая не была зарегистрирована здесь. In-App-Purches не будут работать, пока вы не примете все контракты, связанные с app-и-app-purcheses. Поэтому убедитесь, что вы (или ваш клиент) правильно настроили все контракты в iTunesConnect, они должны отображаться в разделе "Контракты в действии", чтобы ваши покупатели работали.

Ответ 14

Наша проблема заключалась в том, что в Itunes Connect у нас был неправильный идентификатор пакета. Кто-то создал приложение перед началом работы, и нам пришлось отредактировать приложение и установить его appId на новый.

Ответ 15

У меня возникли две проблемы:

1) Я скопировал код IAP из другого (рабочего) приложения, но пропустил настройку моего наблюдателя:

observer = [[IAPHelper alloc] init];       [[SKPaymentQueue defaultQueue] addTransactionObserver: observer];

2) В настройках моего устройства вошел в iTunes в iTunes. Вы можете использовать только тестового пользователя в песочнице - я вышел из системы, и он снова работал.

Ответ 16

Просто выйдите из своей учетной записи iTunes (не заходите в свою тестовую учетную запись сейчас!) и запустите свою программу. Когда покупка inapp запрашивает ваши данные для входа в систему, вы должны ввести информацию о своей тестовой учетной записи.

Ответ 17

Я пробовал каждое предлагаемое здесь решение, но безрезультатно. В моем случае у меня был идентификатор пакета wild-card, начинающийся с того же имени домена, что и тот, который я использовал при создании идентификатора пакета для профиля обеспечения закупок в приложении.

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

1) Подключите iPhone к Mac.

2) В разделе "Устройства" (в меню "Xcode" > "Окно" > "Окно организатора" ) выберите "Профили профилей" для вашего iPhone. Вы увидите все профили обеспечения, которые в настоящее время проживают на вашем iPhone.

3) Осторожно удалите все профили подготовки, начиная с определенного имени домена в идентификаторе пакета (com.MYDOMAIN. *), особенно тех, которые используют wild-card, за исключением того, который вы создаете специально с возможностью делать In-App покупка (com.MYDOMAIN.inappidentifier).

4) Установите приложение заново и протестируйте свою реализацию с помощью нового тестового пользователя iTunes connect (песочница)

SCREENSHOT:

enter image description here

Ответ 18

Я застрял в течение 2 дней, здесь мое решение:

  • Удалить все приложения в приложении.
  • Удалить новые приложения в приложении.
  • Создайте тестер песочницы.
  • Выйдите из моей учетной записи Apple с устройства (iPad), а затем попробуйте купить продукт.
  • Он попросит логин, а затем повторите вход с учетной записью тестового редактора.
  • Покупка продолжается.

Я думаю, что важна учетная запись тестера песочницы, я не использовал ее раньше, так как всегда получал ошибку-0.

Ответ 19

В моем случае, Я пробовал все в Интернете, но ничего не получилось.

Apple фактически нарушила производственную платежную систему и песочницу. Мне просто пришлось подождать два дня, и он начал работать.