使用autonomousSingleAppModePermittedAppIDs和UIAccessibilityRequestGuidedAccessSession与Meraki作为MDM一起进入单应用模式

6
我有一些设备使用了苹果配置器进行监管。 但是我无法使用UIAccessibilityRequestGuidedAccessSession API成功地使应用程序进入单一应用程序模式。
我在Meraki控制台中创建了一个带有限制的配置文件,特别是我将Meraki控制台中的“允许单一应用程序模式”字段设置为我的应用程序包ID。
我假设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.

有没有人成功地让他们的应用程序进入了指导访问模式? 我所能想到的唯一一件事是,我的应用程序不在应用商店中或者指定的捆绑标识错误,但我找不到一种方法来导出 Meraki 创建的.mobileconfig 文件以验证它是否与我的应用程序匹配。
我真的很绝望..我想也许微软 Surface(也有一个与帐户相关联的单个应用模式)可能只是更容易做的事情。
感激任何帮助。 谢谢!
附言:链接this zeiteisen 的回复,非常有帮助,让我到达这一步。
更新:我相当确定捆绑标识是正确的,如果我将我的应用程序名称/捆绑标识作为同一配置文件中单个应用程序模式设置的值,我的应用程序立即进入单个应用程序模式(这不是我想要的,我想要以编程方式进入/退出单个应用程序模式而不被锁定)。
更新2:目前尚不清楚是哪个具体的更改修复了该问题,我只是从Meraki中删除了应用程序、删除了我的配置文件,然后将它们都重新添加进去,一旦Meraki推送了配置文件和应用程序,它就正常工作了。
2个回答

4
此外——我是通过试错的方式学到的——如果您尝试在viewDidLoadviewWillAppear/viewDidAppear中锁定应用程序,它是不会起作用的。从您的日志中我看到您正在尝试在viewDidLoad中锁定应用程序。尝试使用计时器替代,也许那就是您的问题所在。
[self performSelector:@selector(handleLockButton:) withObject:nil afterDelay:1];

当然,您需要将Bundle ID加入可以锁定自己进入引导访问模式的应用程序白名单中。
祝编码愉快 :)
Z.

0

请确保您的配置文件看起来像这样,它应该可以正常工作:

<key>autonomousSingleAppModePermittedAppIDs</key>
<array>
    <string>org.mycompany.myapp</string>
</array>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接