Можно ли обновить профили подготовки без необходимости обновления корпоративных приложений iOS?

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

При открытии приложения с обновленным профилем подготовки происходит сбой с этим сообщением в журнале консоли:

entitlement 'com.apple.developer.team-identifier' has value not permitted by provisioning profile 'My Profile'

При изучении профиля выясняется, что массив, содержащий идентификаторы команд, теперь является не массивом, а единым элементом.

Предыдущий профиль обеспечения:

<key>com.apple.developer.team-identifier</key>
<array>
    <string>SomeIdentifier</string>
</array>

Обновленный профиль обеспечения:

<key>com.apple.developer.team-identifier</key>
<string>SomeIdentifier</string>

Можно ли добавить идентификатор команды в профиль обеспечения iOS? Таким образом, он снова станет массивом.

В проекте Xcode мне удалось найти идентификатор команды в двух местах. В файле pbxproj и в сертификате. Не похоже, что в проекте можно добавить какие-либо идентификаторы для одной и той же цели, поскольку это назначение в стиле пары "ключ-значение".

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

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


person Louis Somers    schedule 15.05.2015    source источник


Ответы (1)


Я не думаю, что есть способ отредактировать профиль обеспечения так, как вы ищете. Если есть, то это будет Apple нарушением безопасности.

В первые дни у нас были те же проблемы с нашим Enterprise Apps, когда приложение перестало открываться для всех наших пользователей - и проблема заключалась в том, что срок действия сертификата истек. Я не смог найти продление на лету для Enterprise Apps, как мы делаем для AppStore Apps.

Мне пришлось автоматизировать процесс создания того же IPA с обновленным сертификатом через Jenkins и сохранить его на сервере, приложение автоматически подбирает новый двоичный файл и просит пользователей обновить его.

Если вы можете узнать какой-либо другой хороший способ - мне было бы интересно :-)

person AlienMonkeyCoder    schedule 20.05.2015
comment
В прошлом году мы смогли сделать это таким образом без каких-либо проблем. В этом году Apple изменила небольшую вещь, из-за которой старые приложения ломались. Кажется, у нас нет другого выбора, кроме как смириться с этим. К счастью, старые исходные файлы были найдены в нашей системе управления источниками, и я рад, что последняя версия XCode способна их собрать, ничего не нарушая (пока). Это довольно хлопотно, и администраторы и операционная группа не слишком довольны решением. Надеюсь, что времена бессрочного лицензирования когда-нибудь вернутся. Это довольно дорогая шутка. Спасибо, что нашли время ответить :-) - person Louis Somers; 24.05.2015