Мне нужно обновить мое управляемое приложение, работающее на большом количестве iPad, без какого-либо взаимодействия с пользователем. На всех этих устройствах управляемое приложение заблокировано в режиме одного приложения. Насколько я понимаю, это ограничение iOS, согласно которому приложение не может быть обновлено, если присутствует одно из следующих условий:
- Приложение, которое нужно обновить, находится на переднем плане.
- Любое приложение заблокировано в режиме одного приложения.
В нашем варианте использования присутствуют оба этих условия. Я также понимаю, что текущий обходной путь заключается в следующем:
- Отключите режим одного приложения.
- Включите режим одного приложения для другого приложения (например, Safari), чтобы вывести это приложение на передний план.
- Отключите режим одного приложения.
- Обновите приложение.
- Повторно включите режим одного приложения для своего приложения, когда обновление завершится, чтобы вернуть его на передний план.
Хотя этот метод работает, он имеет много недостатков:
- Это очень ручная работа, мы не нашли способа ее автоматизировать. Это особенно проблематично, поскольку количество устройств становится большим. Подключение к Интернету может быть нестабильным, и нет надежного способа гарантировать, что каждый шаг выполняется для всех устройств.
- Это склонно к провалу. Особенно между шагами 4 и 5 выше. Кажется, что практически нет гарантий того, когда / если обновление было успешным, чтобы точно знать, когда снова включить режим одного приложения.
- Это не удается для устройств, которые находятся в автономном режиме во время обновления. Если устройство не подключено к Интернету во время выполнения обновления, невозможно гарантировать, что шаги будут выполнены полностью и в правильном порядке при следующем подключении устройства к сети.
Я ищу масштабируемое решение для надежного обновления моего управляемого приложения в режиме единого приложения, работающего на тысячах устройств, автоматическим способом без взаимодействия с пользователем. Я использую Meraki для MDM прямо сейчас, для чего это стоит.