Текущая квитанция недействительна или не соответствует идентификатору лица DS

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


person Nathan H    schedule 18.07.2011    source источник
comment
Та же проблема здесь. Ударяться.   -  person jsadfeew    schedule 26.07.2011


Ответы (4)


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

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

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

person Jacob Gorban    schedule 27.07.2011
comment
В моем случае это была отсутствующая квитанция для тестового пользователя. Исправление заключалось в реализации проверки квитанции, которая заставляет AppStore загружать действительную квитанцию ​​для тестового пользователя. С этой квитанцией все работало нормально. Вы получите награду. - person jsadfeew; 28.07.2011
comment
Кенни прав. Я не реализовал проверку получения при запуске. Я посмотрел видео на веб-сайте Apple, объясняющее, как это работает. - person Nathan H; 29.07.2011
comment
@nute Не могли бы вы поделиться ссылкой на видео с подтверждением квитанции? - person Vinay Bagale; 19.02.2013
comment
@Vinay, это было более 1,5 лет назад ... Это было в центре разработчиков, если я правильно помню ... - person Nathan H; 19.02.2013
comment
@nute Спасибо за ответ ... у вас есть общий / аутентичный пошаговый процесс покупки в приложении для приложения mac os x? - person Vinay Bagale; 19.02.2013
comment
@ Винай, я не помню, но на самом деле прочитал мой ответ внизу. Я ответил на свой вопрос в теме, это может помочь. - person Nathan H; 20.02.2013

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


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

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

Не вижу необходимости во всех этих извращениях...

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

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

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


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

  1. Архивировать приложение
  2. В органайзере Xcode
  3. Выберите Распространить...
  4. Экспортировать как: Пакет установщика Mac

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

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

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

/Applications/SampleApp.app/Contents/_MASRecipt/квитанция


Электронная почта для подтверждения

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

Тема письма:

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

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


Проверить статус

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

Здесь статус должен быть следующим: Готово к отправке.

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

person neoneye    schedule 05.05.2012
comment
Где комментарий Райнера Брокерхоффа с более элегантным решением? Я не вижу этого. Спасибо ! - person Regis_AG; 19.12.2012
comment
Привет @Regis_AG, я вставил текст Райнера. - person neoneye; 20.12.2012
comment
вопрос сейчас. Если вы сохраните квитанцию ​​​​из ..../_MASRecipt/receipt и сохраните ее в другом месте, а также создадите сценарий предварительной сборки, чтобы скопировать ее в выходной путь, поможет ли это? - person Radu Simionescu; 17.12.2014

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

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

- (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);
    }
}
person Nathan H    schedule 03.08.2011

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

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

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

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

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

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

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

person Shubhendu    schedule 15.06.2012
comment
Я написал так же, как вы объясняете в этом ответе, но все еще сталкиваюсь с этой проблемой. Моя текущая версия Mac — 10.8.2. Пожалуйста, помогите мне. Заранее спасибо. - person Birju; 01.02.2013