Я внедряю Apple "Grand unified receipt" на iOS 7, что позволяет приложению проверять получение покупки приложения локально без необходимости связываться с серверами Apple для проверки и проверки. Это отлично работает, если у пользователя есть квитанция, хранящаяся в приложении. В случае, если приложение не имеет квитанции, лучше всего попросить приложение обновить его квитанцию, как таковое:
SKReceiptRefreshRequest *request = [[SKReceiptRefreshRequest alloc] init];
[request setDelegate:self];
[request start];
Проблема в том, что вызов этого кода попросит пользователя войти в систему со своим Apple ID. Я не уверен на 100%, если это происходит все время, или только если время ожидания входа в приложение пользовательского приложения отключено. Я не хочу отображать экран входа в систему Apple ID пользователям, если это действительно необходимо - я не хочу, чтобы люди беспокоились о том, что они будут взиматься неправильно. Я хотел бы показать дисплей, говорящий пользователю, почему у них будет запрос на их идентификатор Apple ID, но только если им действительно потребуется ввести свой пароль. Если им не нужно вводить пароль, я хочу, чтобы это был бесшовный и скрытый процесс. Какой лучший способ для продолжения? Я думаю, что лучший способ - проверить, нужно ли пользователю войти в магазин приложений, но я не уверен, что это возможно.