Как стать автором
Обновить

Комментарии 4

Если приложение только установлено на чистую, как получить чек чтобы отправить его в валидацию для пункта «1. Валидация App Store чека»?

Если дергать resore в api то будет запрос юзеру на пароль.
Если ждать появления данных в ссылке [NSBundle mainBundle].appStoreReceiptURL то они там могут появиться очень не скоро.

А показать о том что есть триал надо еще в intro.
Если приложение установлено на чистую, то чек будет всегда (если скачано с апстора). Для ревьюеров и для себя нужно рефрешить чек через SKReceiptRefreshRequest, но как вы сказали, будет запрос юзеру на пароль. И некоторые ревьюеры могут отреджектить приложение из-за этого.
Поэтому, можно не делать проверку доступности триала (intro), если нет чека.
Вот тут можете почитать.
Тоесть я правильно понял, что чек по ссылке [NSBundle mainBundle].appStoreReceiptURL при установке из AppStore есть сразу при 1 запуске приложения. Если это верно для всех версий iOS то это супер.
И получается, что данные в чеке от того аккаунта iTunes через который юзер скачал приложение.
Так как аккаунт мог сменится, то без вызова SKReceiptRefreshRequest есть вероятность показать доступность триала от другого аккаунта.

Тоесть это тоже по сути угадывание есть триал или нет. И пожалуй это один из не самых простых методов угадывания наличия триала :)

чек по ссылке [NSBundle mainBundle].appStoreReceiptURL при установке из AppStore есть сразу при 1 запуске приложения. Если это верно для всех версий iOS то это супер.

Да, именно так.

App Store Аккаунт действительно можно сменить, однако это редкий случай) Максимум, чем это грозит, это то, что вы покажете новому пользователю недоступность триала, хотя он на самом деле будет доступен. Как вариант, да, можно выполнять SKReceiptRefreshRequest перед каждым отображением экрана покупки, но стоят ли эти усилия редкого кейса смены Apple ID, решать вам.

Но тут дело не только в проверки доступности. Вы можете оформить подписку и сразу же сменить App Store аккаунт, подписка по прежнему будет активна до тех пор, пока вы не обновите чек.

Это глобальная проблема связи между Apple ID аккаунтами и аккаунтами в вашем приложении, и каждый разработчик решает по своему усмотрению.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий