it-roy-ru.com

Когда обновляются профили при использовании "Автоматически управлять подписью"/allowProvisioningUpdates?

У меня есть корпоративное распределенное приложение, которое построено на сервере сборки с использованием xcodebuild. В прошлом году мы внесли изменения в использование функции «Автоматически управлять подписью» с флагом «-allowProvisioningUpdates». Профиль обеспечения генерируется нормально с использованием этого метода, но мы приближаемся к году с этим профилем, и он истекает через 31 день.

Изначально у меня сложилось впечатление, что использование «allowProvisioningUpdates» приведет к тому, что профиль обеспечения будет обновляться при каждой новой сборке, но в этом случае срок его действия не истечет. Нам нужно сделать новую сборку с обновленным профилем, чтобы у наших пользователей не было сломанного приложения в течение нескольких месяцев. Однако сгенерированный профиль обеспечения не отображается в разделе «Сертификаты, идентификаторы и профили» в Центре разработчиков Apple, и я не могу найти способ заставить Xcode или xcodebuild сгенерировать новый профиль обеспечения. Как я могу заставить это произойти, чтобы не было простоев для наших пользователей? Что произойдет, когда срок действия профиля истечет?

13
blork

Я связался с Apple, и вот что они должны были сказать:

Автоматически управлять подписью только на Xcode создает новый профиль обеспечения после истечения срока действия предыдущая. 

Это лучший вариант для новых сборок, которые необходимо отправить на App Store, поскольку у текущих пользователей нет времени простоя, когда профиль обеспечения.

Когда вы разрабатываете собственные приложения, если вы разрешите предоставление срок действия профиля истекает, чтобы автоматически подписать вашу новую сборку (с новым автоматически созданным профилем подготовки), ваши пользователи не смогут получить доступ к вашему приложению.

Поэтому ответ, по-видимому, заключается в том, что мы не должны использовать автоматическую подпись для внутреннего/корпоративного распределения, а вместо этого только для развертываний в App Store.

7
blork

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

1
GetIntoCode

Хотя это раздражает тех из нас, кто предпочел бы все элементы со сценариями, оказывается, что запуск сборки на компьютере, чье «устройство» отсутствует в профиле автоматической подготовки, обновит профиль.

Это работало для меня только сейчас, независимо от того, запускал ли я архивирование/экспорт из командной строки со своими скриптами или из xcode GUI.

Никаких подсказок не давалось, просто молча обновлялось и работало. 

Поскольку Apple ответила нам выше, возможно, это новая функция/исправление в Xcode 10.1, которой я и являюсь сегодня.

0
AnneTheAgile

Попробуйте вручную создать второй профиль обеспечения на портале Dev, удалить старый профиль из ~/Library/MobileDevice/Provisioning Profiles сервера сборки, загрузить и установить новый профиль. 

0
Oleg Shulakov