Текущая квитанция недействительна или не соответствует идентификатору абонента - PullRequest
8 голосов
/ 18 июля 2011

Я пытаюсь проверить покупки в приложении для MacOS.После ввода учетных данных тестового пользователя App Store жалуется: «Текущая квитанция недействительна или не соответствует идентификатору сотрудника».и покупка не удалась.

Ответы [ 4 ]

6 голосов
/ 05 мая 2012

Некоторые из многих вещей, которые я пытался обойти этой проблемой.


Получение квитанций в App Store

ОБНОВЛЕНИЕ: Вот комментарий Райнера Брокерхоффа снизу к этой статье. Гораздо более элегантное решение.

Я не вижу необходимости во всех этих деформациях ...

Чтобы отладить код проверки квитанции, я просто собираю, а затем показываю продукт приложение в Finder. Дважды щелкните по нему один раз, и он выйдет (173), затем вы получите квитанцию ​​в пачке.

Теперь вернитесь к Xcode и отладьте проверку. Квитанция останется там, пока вы не очистите; Вы можете сделать все это снова или скопировать квитанцию в другом месте и положить его обратно после сборки - в какой-то момент у меня была квитанция переустановлен скриптом сборки.

Если вы хотите проверить архивированное приложение, покажите продукт в Finder, затем перейдите на несколько уровней вверх к папке «Release» и там вы увидите приложение - вы можете дважды щелкнуть его там.


Длинная процедура получения квитанции:

  1. Архив приложения
  2. В Xcode Organizer
  3. Выберите Распределить ...
  4. Экспорт как: пакет установки Mac

Наконец, установите его из командной строки, как это

sudo installer -store -pkg (path to package including filename) -target /

Теперь приложение должно содержать квитанцию ​​по этому пути

/ Применения / SampleApp.app / Содержание / _MASReceipt / квитанция


Подтверждение по электронной почте

Apple отправляет электронное письмо при создании тестового пользователя в iTunes Connect.

Тема письма:

Пожалуйста, подтвердите контактный адрес электронной почты для вашего Apple ID

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


Проверка статуса

В iTunes Connect в разделе Управление приложениями > SampleApp > Управление покупками из приложений

Здесь должен появиться статус: Готов к отправке

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

5 голосов
/ 03 августа 2011

Я отвечу на свой вопрос.Я смотрел видео под названием «Покупка из приложения для iOS и Mac OS X» на http://developer.apple.com/videos/wwdc/2011/.

. Ключевая часть касалась загрузки квитанции приложения при запуске.Код для включения в делегат приложения был что-то вроде:

- (void) applicationWillFinishLaunching:(NSNotification *)notification
{
    if(![[NSFileManager defaultManager] fileExistsAtPath:[[[NSBundle mainBundle] appStoreReceiptURL] path]]) {
        NSLog(@"to get sandbox receipt, the app must be launched from outside xcode");
        //exit(173);
    }
}
4 голосов
/ 15 июня 2012

У меня были большие проблемы с интеграцией In-App Purchase в Mac OS X.

Я много гуглил, но ничего не пришло с решением. Наконец, разработчики яблок пришли на помощь. в wwdc 2012 в основном рассказали причину, по которой в MAC OS X (версия 10.7.2) произошла ошибка, из-за которой не удалось получить квитанцию.

Эта ошибка была решена в последней версии, то есть MAC OS X (версия 10.7.4)

Я просто обновил свою ОС и смог получить квитанцию. Итак, друзья, у которых когда-либо возникла проблема "Текущий чек недействителен или не соответствует идентификатору пользователя ds". просто обновите ОС до 10.7.4 и apso запишите следующий код в методе приложения applicationDidFinishLaunching делегата -

if(![[NSFileManager defaultManager] fileExistsAtPath:[[[NSBundle mainBundle] appStoreReceiptURL] path]]) {
    NSLog(@"to get sandbox receipt, the app must be launched from outside xcode");
    exit(173);
}

и первый раз запустите ur-код вне XCode. после получения ответа вы можете снова выполнить отладку из XCode.

Каждый раз, когда вы чистите сборку, вы должны запускать свое приложение вне XCode.

3 голосов
/ 27 июля 2011

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

Если ваша отладочная версия работает без надлежащего чека (от того же тестового пользователя), я сомневаюсь, что покупка в приложении будет работать. Не используйте образец квитанции, если вы хотите протестировать покупку в приложении, используйте реальную квитанцию ​​от того же тестового пользователя, что и при покупке продукта в приложении.

Мне удалось совершить покупку в приложении в моем собственном Mac-приложении (хотя его все еще нет в магазине), поэтому, если у вас появятся дополнительные вопросы, отзовитесь.

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