Использование autivilSingleAppModePermittedAppIDs и UIAccessibilityRequestGuidedAccessSession вместе с Meraki в качестве MDM для входа в режим одного приложения

У меня есть небольшое количество устройств, которые я установил как контролируемые с помощью Apple Configurator. Однако я не могу заставить приложение успешно войти в режим одного приложения с помощью UIAccessibilityRequestGuidedAccessSession API.

Я создал профиль конфигурации с ограничениями, установленными в консоли Meraki, в частности, я установил поле "Разрешенный режим одного приложения" в консоли Meraki для идентификатора пакета моего приложения.

Я предполагаю, что это поле в Мераки отображается на autonomousSingleAppModePermittedAppIDs ключ конфигурации Я добавил свое приложение, которое представляет собой IPA (не устанавливается из магазина приложений) для установки на контролируемое устройство.

Профиль и приложение успешно установлены на iPad, однако UIAccessibilityRequestGuidedAccessSession() по-прежнему не удается.

Сам вызов довольно прост:

NSLog(@"requesting guided access");
UIAccessibilityRequestGuidedAccessSession(YES, ^(BOOL didSucceed) {
    if (didSucceed) {
        NSLog(@"entered guided access");
        self.inGuidedSessionMode = YES;
        [[[UIAlertView alloc] initWithTitle:@"entered single access mode" message:nil delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
    }
    else {
        NSLog(@"failed to enter guided access");
        [[[UIAlertView alloc] initWithTitle:@"Unable to enter single access mode" message:nil delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil] show];
    }
});

Журнал устройства показывает следующие записи

Mar 26 11:42:31 BayLeaf-Kiosk-4 backboardd[28] <Error>: HID: The 'Passive' connection 'xxxxxx' access to protected services is denied.
Mar 26 11:42:31 BayLeaf-Kiosk-4 xxxxxx[412] <Warning>: requesting guided access
Mar 26 11:42:31 BayLeaf-Kiosk-4 xxxxxx[412] <Warning>: viewDidLoad got called
Mar 26 11:42:31 BayLeaf-Kiosk-4 xxxxxx[412] <Warning>: applicationDidBecomeActive called
Mar 26 11:42:31 BayLeaf-Kiosk-4 xxxxxx[412] <Warning>: failed to enter guided access
Mar 26 11:42:31 BayLeaf-Kiosk-4 backboardd[28] <Error>: HID: The 'Rate Controlled' connection 'xxxxxx' access to protected services is denied.

Кто-нибудь смог успешно заставить их приложение войти в систему с управляемым доступом? Единственное, о чем я мог подумать, это то, что мое приложение не находится в магазине приложений или что указанный идентификатор пакета неверен, но я не смог найти способ экспортировать.mobileconfig, созданный Meraki, чтобы убедиться, что оно соответствует моему приложению.

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

Буду признателен за любую помощь. Спасибо!

PS: ссылка на этот ответ @zeiteisen, которая была очень полезна, чтобы донести до меня этот момент.

ОБНОВЛЕНИЕ: Я почти уверен, что идентификатор пакета правильный, если я использую имя своего приложения / идентификатор пакета в качестве значения для настройки режима отдельного приложения в том же профиле конфигурации, мое приложение сразу переходит в режим одного приложения (это не то, что я хочу, я хочу, чтобы он входил / выходил из режима одного приложения программно и не был заблокирован).

ОБНОВЛЕНИЕ 2: Неясно, какое конкретное изменение устранило проблему, я просто удалил приложение из Meraki, удалил свой профиль конфигурации, добавил их обратно и после того, как Meraki нажал на профиль и приложение, оно просто сработало.

2 ответа

Кроме того - я изучил этот метод проб и ошибок - если вы попытаетесь заблокировать приложение на viewDidLoad или же viewWillAppear/viewDidAppearне сработает. Я вижу из ваших журналов, что вы пытаетесь заблокировать приложение в viewDidLoad, Попробуйте вместо этого использовать таймер, возможно, это ваша проблема.

[self performSelector:@selector(handleLockButton:) withObject:nil afterDelay:1];

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

Удачного кодирования:)

З.

Убедитесь, что ваш профиль конфигурации выглядит следующим образом, и он должен работать нормально:

<key>autonomousSingleAppModePermittedAppIDs</key>
<array>
    <string>org.mycompany.myapp</string>
</array>
Другие вопросы по тегам