web-dev-qa-db-ja.com

MDMを使用してNSUserDefaults経由でエンタープライズアプリを構成する

10.9のOS X Server 3.0.1でプロファイルマネージャーを使用して、iOS7を実行している管理対象デバイスにエンタープライズアプリをプッシュしています。これはうまく機能しており、デバイスの構成設定をプッシュすることもできます。

私の障害は、アップルのサンプルプロジェクト ManagedAppConfig で提供される情報を取得して、プロファイルマネージャーによって配布されたアプリに適用する方法です。

ManagedAppConfigは、アプリのNSUserDefaultsにデータを入力するために使用されるシンプルなplistを提供します。これは、アプリの構成に使用されます。ただし、MDMを使用してこのデータディクショナリをNSUserDefaultsに取り込む方法については指示がありません。

管理対象アプリのNSUSerDefaultsにデータのplistを送信する方法に関する情報が欠けているのは明らかですが、これまでのところ、検索は役に立ちませんでした。プロファイルマネージャーでこれを行うことは可能ですか? OS X Serverで私がまだ見つけていない別の方法はありますか?

以下は、ManagedAppConfigに関するAppleのドキュメントからの引用です。

「ManagedAppConfig」は、iOSアプリに管理アプリの設定とフィードバックサポートを実装する方法を示しています。この機能により、モバイルデバイス管理(MDM)サーバーは、リモートで設定を構成するために、辞書を管理対象アプリのNSUserDefaultsにプッシュダウンできます。

以下は、アプリのNSUserDefaultsに何らかの方法で配置された2つのデータを含むplistの例です。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>serverURL</key>
    <string>http://developer.Apple.com/</string>
    <key>disableCloudDocumentSync</key>
    <true/>
</dict>
</plist>

NSUserDefaultsのドキュメント はMDMを介した設定についても言及していますが、詳細は記載されていません。

アプリケーションが管理対象環境をサポートしている場合は、NSUserDefaultsオブジェクトを使用して、ユーザーの利益のために管理者が管理する設定を決定できます。管理された環境は、管理者または教師がシステムを特定の方法で構成することを望むコンピューターラボまたは教室に対応します。これらの状況では、教師は一連のデフォルト設定を確立し、それらの設定をユーザーに強制できます。設定がこの方法で管理されている場合、アプリケーションは、ユーザーが適切なコントロールを無効にすることによってその設定を編集できないようにする必要があります。

私の午後は、このとらえどころのない情報の追跡に成功せずに費やされたため、SOコミュニティの支援を求めます。MDMを使用して必要な情報を誰かに教えてもらえますか。 NSUserDefaultsへのデータ?

どうもありがとう。

21
xi golom

AppleからManagedAppConfigをテストする方法についての小さなブログ投稿を書きました。

http://tomasmcguinness.com/2014/03/07/exploring-apples-managedappconfig-demo/

開示:この投稿では、私が作成したwww.testmdmapp.comの使用について説明します。

16

MDMサーバーからプッシュダウンされた管理対象アプリ構成の変更はNSUSerDefaultsに表示されるため、NSUserDefaultsへの変更を通知するオブザーバーを追加できます。 MDMサーバーからプッシュされた管理対象アプリ構成辞書は、次の名前のキーに保存されます:com.Apple.configuration.managed

アプリケーションは、フィードバックを含む辞書をMDMサーバーに送信することもできます。フィードバックとしてMDMサーバーに送り返される辞書は、このキーに保存する必要がありますcom.Apple.feedback.managed

これらすべてをテストするには、MDMサーバーによって管理されるデバイスが必要です。アプリケーションは、ApplicationConfiguration設定とManagedApplicationFeedbackコマンドをサポートするMDMサーバーによってインストールされる必要があります。

サンプルアプリケーションのreadme.txtファイルでは、このアプリケーションのデモについて、WWDC 2013セッション301「エンタープライズおよび教育用にアプリを拡張する」を参照することを推奨しています。

9
Sharjeel Aziz

設定を読み取るには(Swift 3):

if let managedConf = UserDefaults.standard.object(forKey: "com.Apple.configuration.managed") as? [String:Any?] {
    if let serverURL = managedConf["serverURL"] as? String{
        return serverURL
    }
}
if let serverURL = Bundle.main.object(forInfoDictionaryKey: "serverURL") as? String {
    return serverURL
}
return  "https://Apple.com/"

ご覧のように、アプリはMDMバンドル構成からの読み取りを手動で有効にする必要があります。

P、S:これらの構成を取得できるのは管理対象アプリのみです。

9
Ohad Cohen