Я выполнил проверку подлинности на местном уровне на устройстве, используя OpenSSL и компилятор asn1c, с помощью руководства по программированию проверки подлинности Apple. Мое приложение поддерживает только iOS 7 и выше.
Как рекомендовано Apple, я звоню, [[NSBundle mainBundle] appStoreReceiptURL]
, чтобы получить квитанцию магазина приложения. Я также делаю это, когда приложение запускается перед отображением любого пользовательского интерфейса. Этот первый вызов запуска необходим, поскольку Apple рекомендует обновлять квитанцию, если ее там не было при первой попытке. В результате этого вызова (SKReceiptRefreshRequest
) приложение запрашивает у пользователя ввод информации о своей записи в iTunes.
Теперь проблема в том, что Apple продолжает отказываться от приложения, заявляя, что звоню на их производственные серверы вместо серверов песочницы. Но то, что я понимаю из Руководства по проверке чеков, действителен только в том случае, если вы используете второй подход проверки и отправляете данные в Apple через собственный безопасный сервер. Тем не менее, я все делаю локально, и я очень смущен тем, как различать среду производства и песочницы, чтобы мое приложение могло пройти обзор.
Любые указатели или предложения будут очень полезными.