6

Apple Configurator を使用して監視対象として設定した少数のデバイスがあります。ただし、 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.

アプリをガイド付きアクセスに入れることに成功した人はいますか? 考えられる唯一のことは、自分のアプリがアプリストアにないか、指定されたバンドル ID が正しくないということでしたが、Meraki によって作成された .mobileconfig をエクスポートして自分のアプリと一致することを確認する方法が見つかりませんでした。

本当にこれで私の知恵の終わり..おそらくMicrosoft Surface(アカウントにリンクされた単一のアプリモードもあります)の方が簡単なことかもしれないと思います.

助けていただければ幸いです。ありがとう!

PS: @zeiteisen によるこの応答へのリンクは、この点に到達するのに非常に役立ちました。

更新: バンドル ID が正しいと確信しています。アプリ名/バンドル ID を同じ構成プロファイルのシングル アプリ モード設定の値として使用すると、アプリはすぐにシングル アプリ モードになります (これは私が考えたものではありません)。プログラムでシングル アプリ モードを開始/終了し、ロックされないようにしたい)。

更新 2: どの特定の変更が問題を修正したかは不明です。Meraki からアプリを削除し、構成プロファイルを削除し、それらを両方に追加し、プロファイルとアプリが Meraki によってプッシュされると、機能しました。

4

2 に答える 2

4

また、これは試行錯誤の方法で学びました。アプリを onviewDidLoadまたはviewWillAppear/viewDidAppearでロックしようとしても、うまくいきません。ログから、アプリをロックしようとしていることがわかりますviewDidLoad。代わりにタイマーを使用してみてください。おそらくそれが問題です。

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

もちろん、ガイド付きアクセスにロックできるアプリのホワイトリストにバンドル ID が含まれている必要があります。

ハッピーコーディング:)

Z.

于 2015-02-25T15:45:37.050 に答える
0

構成プロファイルが次のようになっていることを確認してください。正常に動作するはずです。

<key>autonomousSingleAppModePermittedAppIDs</key>
<array>
    <string>org.mycompany.myapp</string>
</array>
于 2014-11-07T04:57:16.627 に答える