Просрочено обновление профилей обеспечения - PullRequest
0 голосов
/ 15 мая 2019

У нас есть несколько пользовательских приложений для конкретных клиентов.Каждое приложение имеет свой «Enterprise» сертификат распространения «iOS UniversalDistribution».Сегодня мы получили сообщение, что все приложения нашего клиента перестали работать, они даже не открываются.Сначала мы думали, что это ошибка после обновления, но мы заметили, что срок действия наших профилей Provisioning истек.Мы не получали никаких предупреждений, уведомлений, электронных писем ... все они просто перестали работать.

Приложения могут обновляться с помощью созданного нами пользовательского сервиса.Теперь, когда они не будут открываться на устройствах, мы боимся, что нам придется вручную устанавливать новые версии на устройствах?

Но это означает, что в будущем это случится снова.После изучения документации Apple что-то все еще не ясно.Если мы создадим новую версию приложения (файл .IPA) и загрузим обновления в приложение, будет ли приложение обновлять все сертификаты соответствующим образом?Так что, если мы сделаем обновление за несколько недель до этого с обновленными профилями обеспечения, предотвратит ли это повторение снова?

Заранее спасибо за отзыв.

1 Ответ

1 голос
/ 23 мая 2019

Так что, к сожалению, ни одно из существующих развернутых приложений не будет запущено сейчас, поэтому вы не сможете использовать самообновляющуюся логику в приложении, чтобы исправить это.Разработчики должны следить за устаревшими профилями и сертификатами и обеспечивать их обновление по мере необходимости.

Вся информация, представленная ниже, предполагает, что вы используете Enterprise Distribution Profile для создания этих приложений iOS.

Следует отметить, что есть две вещи, срок действия которых может истечь: профиль обеспечения и сертификат.

Истекающий профиль обеспечения:

Как правило, с истекающим профилем подготовки легче справиться, так как вам нужно только получить новый профиль на устройстве.Технически, создание новой сборки с новым профилем обеспечения будет делать это, но есть и другие способы.Например, если это управляемые устройства компании, вы обычно можете использовать программное обеспечение MDM для передачи нового профиля на устройства, не требуя установки нового устройства .ipa (двоичный файл приложения) на устройство).Кроме того, если вы используете идентификаторы приложений с подстановочными символами в своем профиле обеспечения, установка другого устройства с более новым профилем обеспечения будет также работать (хотя это немного неортодоксально).Длинная история, короткая: вам нужно получить новый профиль на устройстве.На этом этапе, скорее всего, вы будете информировать пользователей, что им нужно повторно загрузить новую версию приложения.

Истекающий сертификат

Если срок действия сертификата, используемого для кодирования знака, истекает, вам нужно будет сгенерировать новый двоичный файл с новым сертификатом.Существуют способы отставки существующего ipa, но если у вас есть исходный код, проще просто пересобрать его с новым сертификатом.Хорошей новостью является то, что срок действия сертификата истекает только каждые 3 года для корпоративного сертификата распространения (вместо каждого 1 года для профиля обеспечения).Так что это не нужно так часто.Но это, безусловно, потребует от вас повторного создания нового двоичного файла, подписанного новым сертификатом.

Предотвращение повторения

Если вы полагаетесь на приложение, чтобы проверить наличиеобновления и самообновление, вам необходимо убедиться, что новая версия публикуется достаточно заблаговременно, чтобы пользователи запустили приложение в промежутке между выпуском новой версии и истечением срока действия профиля или сертификата.Этот промежуток времени зависит от вашего приложения.Если это корпоративное приложение, которое люди используют ежедневно, вы, вероятно, можете обойтись за 2 или 3 недели (для людей, которые находятся вне офиса).Если он используется редко, я хотел бы рассмотреть возможность развертывания новой версии с новым профилем обеспечения как минимум за 3-6 месяцев до истечения срока действия старого.Это требует планирования и напоминаний, чтобы не пропустить окно времени.

Также следует отметить, что если вы используете автоматическую подпись кода, вы теряете некоторый контроль над созданием и использованием нового профиля, а также сертификатами.Вот почему я рекомендую для корпоративных приложений использовать параметры ручной подписи кода, чтобы вы могли четко указывать, какие профили обеспечения используются, а также сертификат.Кроме того, удалите все старые профили с Mac при выполнении сборки, чтобы убедиться, что вы используете правильный профиль (вы можете иметь много профилей на Mac для одного приложения в любой момент времени. Вы можете найти их здесь: https://stackoverflow.com/a/45642752/3708242). Предполагать, что Xcode выберет самый последний, рискованно.

...