Рик Хаандрикман 27 декабря 2022 г.
Используете ли вы жестко запрограммированный промежуточный сертификат WWDR для проверки чеков в App Store? Сюрприз. Теперь у вас есть 1,5 месяца, чтобы обновить приложение до истечения срока действия старого - 7 февраля. Вот что вы должны сделать прямо сейчас:
Что изменится?
20 декабря 2022 года Apple объявила об изменениях для сертификата подписи чеков App Store. В частности, они объявили, что с 18 января сертификат подписи чеков App Store будет использовать новый промежуточный сертификат WWD. С 7 февраля срок действия предыдущего сертификата истекает, и он больше не будет действовать.
У тех кого затронут эти изменения есть меньше двух месяцев, чтобы внести необходимые изменения и это прямо перед праздниками... Ох уж эти радости мобильной разработки…
«Этот сертификат действителен»….. пока что
По правде говоря, срок действия промежуточного сертификата буквально закодирован в сертификате, но эта дата 2023 года казалась такой далекой, когда вы ее реализовали.
Что произойдет с приложениями, которые не обновят свой сертификат подписи чеков в App Store
Проверка завершится ошибкой, если ваше приложение попытается использовать сертификат WWDR с истекшим сроком действия для проверки сертификата iTunes App Store в контейнере PKCS #7, который содержит фактические данные квитанции.
Теперь у вашего приложения есть некоторая гибкость в ответе на неудачную проверку, но, скорее всего, оно будет предполагать, что у пользователя не должно быть доступа к связанному содержимому, и сообщит пользователям об этом через пользовательский интерфейс.
Что в результате? Заплатившие пользователи, у которых нет доступа к контенту, который они купили, множество неудобных вопросов в ваши каналы поддержки, плохие отзывы в магазине приложений и общее разочарование повсюду.
Как проверить, коснулись ли вас изменения
Во-первых, скорее всего, вы не пострадали. Сценариев, в которых это изменение действительно повлияет на ваше приложение, относительно немного:
- Вы не используете API AppTransaction и Transaction для проверки транзакций в App Store .
- Вы не используете end point веб службы verifyReceipt
- Вы используете проверку чеков на устройстве с захардкоденым промежуточным сертификатом.
Или, другими словами, вы сделали то, что генеральный директор RevenueCat Джейкоб запретил вам делать, когда объяснял процесс проверки чеков в App Store на устройстве :
нельзя сказать, что он вас не предупредил…
И если это случилось с вами, то теперь у вас есть несколько недель, чтобы предотвратить любые негативные последствия для ваших (платящих) пользователей.
Как обновить сертификат подписи квитанции App Store
Предлагаемое Apple решение состоит в том, чтобы обновить ваш код, таким образом чтобы он соответствовал рекомендованному процессу проверки, изложенному в их документах «Проверка чеков с документами App Store » ссылка . Если вы в используете проверку чеков App Store на устройстве, при следовании этим рекомендациям вам потребуется передать зашифрованный бинарный файл через endpoint verifyReceipt посредством защищенного сервера.
🚨Вызов сервера App Store из вашего приложения запрещен, так как вы не будете контролировать ни один из узлов этого соединения: будет невозможно создать доверенное соединение между App Store и устройством пользователя.
Если вы еще не настроили такой сервер, предложенный Apple метод, скорее всего, потребует от вас нескольких дней работы. К счастью, это не единственный способ и пока остается время для внесения изменений, вы можете выбрать более быструю альтернативу:
Обновите жестко закодированный сертификат
Просто замените старый сертификат на новый 🤷♀️
Так делать не нужно. Это быстрее, чем переключение на раcчитаную цепочку доверия, но в этом случае вы снова рискуете оказаться в той же ситуации если в Apple решат еще что-либо поменять в своих сертификатах.
Переключиться на нежестко-закодированный сертификат
Джош Хольц написал о том, как можно это сделать, в руководстве посвященного storeKit2 и swift, доступного по подписке внутри его iOS приложения. К сожалению, если вы все еще используете StoreKit 1, все немного сложнее, чем описано в этой статье.
Лучше всего следовать одному из многочисленных руководств по проверке чеков на устройстве, таких как это или это немного более старое .
Или…
Переключиться на RevenueCat
Это решение рекомендуют 9 из 10 разработчиков: Перейти на RevenueCat.
Просто следуя инструкциям по установке iOS Purchases SDK , вы сделаете себе тот самый безопасный сервер, который так рекомендует Apple:
Вы сможете:
- Размещать и настраивать продукты удаленно с панели управления
- Анализировать самые важные показатели вашего приложения по подписке в одном месте
- Просматривать историю транзакций клиентов, графики LTV и предоставлять рекламные подписки.
- Использовать веб-перехватчики для запуска других служб на основе событий в реальном времени.
- Делать все это на разных платформах
Некоторые заключительные мысли
Постоянная игра в догонялки с меняющимися правилами, техническими требованиями и особенностями платформ iOS и Android и магазинов приложений — это бремя, которое истощает и забирает ваши силы и энергию, которую вам бы лучше было бы тратить на увеличение ценности вашего приложения.
К счастью, истечения срока действия этого сертификата имеет относительно ограниченное влияние, но это один из бесчисленных примеров вопросов «шума», которые разработчики должны устранять, чтобы иметь возможность работать в App Store.
Вот почему мы создали RevenueCat.
Попробуйте — для большинства приложений это будет бесплатно.
Или постучитесь и давайте обсудим том, как мы можем помочь.