Автоматическое обновление корпоративных приложений iOS в режиме одного приложения

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

  • Приложение, которое нужно обновить, находится на переднем плане.
  • Любое приложение заблокировано в режиме одного приложения.

В нашем варианте использования присутствуют оба этих условия. Я также понимаю, что текущий обходной путь заключается в следующем:

  1. Отключите режим одного приложения.
  2. Включите режим одного приложения для другого приложения (например, Safari), чтобы вывести это приложение на передний план.
  3. Отключите режим одного приложения.
  4. Обновите приложение.
  5. Повторно включите режим одного приложения для своего приложения, когда обновление завершится, чтобы вернуть его на передний план.

Хотя этот метод работает, он имеет много недостатков:

  • Это очень ручная работа, мы не нашли способа ее автоматизировать. Это особенно проблематично, поскольку количество устройств становится большим. Подключение к Интернету может быть нестабильным, и нет надежного способа гарантировать, что каждый шаг выполняется для всех устройств.
  • Это склонно к провалу. Особенно между шагами 4 и 5 выше. Кажется, что практически нет гарантий того, когда / если обновление было успешным, чтобы точно знать, когда снова включить режим одного приложения.
  • Это не удается для устройств, которые находятся в автономном режиме во время обновления. Если устройство не подключено к Интернету во время выполнения обновления, невозможно гарантировать, что шаги будут выполнены полностью и в правильном порядке при следующем подключении устройства к сети.

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


person jcady    schedule 09.01.2017    source источник


Ответы (4)


В iOS 11.2 теперь вы можете отправить автоматическое обновление на устройство, работающее в режиме SingleApp.

Apple не упомянула об этом общественности, но включена в примечания к бета-версии.

person Peter_James    schedule 04.12.2017
comment
У меня работает в режиме одного приложения, не работает с автономным режимом одного приложения или блокировками управляемого доступа (обновляет приложение, но показывает цифровую клавиатуру) - person tagy22; 09.04.2018

Сегодня позвонили в службу поддержки предприятий, они не смогли найти никакой официальной документации, в которой упоминается, что ios 11.2.x поддерживает обновление приложений в режиме одного приложения :(

person napman    schedule 18.01.2018
comment
Это не задокументировано, но я проверил это, и это работает. - person jcady; 19.01.2018

Теперь с бета-версией iOS 11.3 он снова работает, но после обновления приложение не блокируется автоматически в режиме одного приложения, и нам нужно перезагрузить устройство.

Надеюсь, в предстоящей бета-версии эта проблема будет решена.

person Bhavesh Tiwari    schedule 30.01.2018

iOS 13.1 beta 1, по-видимому, устраняет большинство проблем, с которыми я сталкивался в этой области.

Я видел проблемы в iOS 11–12.*, когда обновления иногда работали, но иногда показывали пин-пад, даже если не был установлен код доступа или код управляемого доступа, или вели себя странно.

В бета-версии 13.1 вы можете отправить обновление приложения, и на устройстве ничего не произойдет, но если после этого вы отправите команду перезапуска, устройство перезагрузится, обновит приложение и продолжит работу в режиме одного приложения.

Я тестировал как «Режим одного приложения» (SAM), так и «Автономный режим одного приложения» (ASAM), и до сих пор он работал у меня каждый раз.

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

редактировать: 13.1 beta 2/3/4 меняет это, теперь, когда вы отправляете обновление из своего MDM, приложение будет закрываться, обновляться и снова открываться и продолжать работу в одном приложении. режим. Я проверил и SAM, и ASAM, теперь они обновляются без перезагрузки.

person tagy22    schedule 29.08.2019