
Appleソフトウェアアップデート強制のフェーズを理解する
MDMを使用したソフトウェアアップデート強制には5つの主要コンポーネントが関与します:
MDMソリューション
デバイス
ユーザ
Apple Software Lookup Service
Appleソフトウェアアップデートカタログ
フェーズ1
MDMソリューションはApple Software Lookup Serviceで新しいリリースを定期的に監視しています。検出されると、カタログのSupportedDevices
キーを使用し、管理対象デバイスのリストと比較して、リリースを適用できるデバイスを判別します。
また、MDMソリューションは、softwareupdate.*
およびdevice.operating-system.*
ステータスレポートに登録して、それらのいずれかの値が変更された場合に自動的にアップデートを取得します。

フェーズ2
MDMソリューションは検出されたバージョンでcom.apple.configuration.softwareupdate.enforcement.specific
宣言を作成し、組織の要件に応じてTargetLocalDateTime
と、オプションでDetailsURL
を定義します。そのあとMDMソリューションは、宣言の同期をトリガするプッシュ通知をデバイスに送信します。詳しくは、Apple Developer Webサイトの「宣言型管理を統合する」(英語)を参照してください。

フェーズ3
デバイスで宣言がアクティブになったあと、Appleソフトウェアアップデートカタログを検出してダウンロードURLを取得してから、要件が満たされている場合はアップデートのダウンロードを開始します。そのあとデバイスはユーザに通知を提示し、MDMソリューションに以下を返します:
1. waitingのsoftwareupdate.install-state
値。アップデートを要求するプロセスが開始されたことを示します。
2. downloadingのsoftwareupdate.install-state
値。デバイスによってアップデートがダウンロード中であることを示します。
デバイスがコンテンツキャッシュサービスを使用できる場合は、コンテンツキャッシュからソフトウェアアップデートをダウンロードしようとします。
デバイスはアップデートを正常にダウンロードしたあと、ソフトウェアアップデートのインストールを準備します。このプロセスが完了すると、preparedのsoftwareupdate.install-state
値がMDMソリューションに返されます。

フェーズ4
デバイスは通知期間に入ります。インストールがいつ発生するかに応じて、この通知に表示されるテキストとオプションは異なります。

フェーズ5
強制期限前にユーザがアップデートをインストールしなかった場合は、デバイスがインストールを開始し、installingのsoftwareupdate.install-state
値をMDMソリューションに返します。インストールを開始する前に、Appleシリコンを搭載したMacがMDMソリューションにブートストラップトークン(使用可能な場合)を取得するように通知します。
アップデートが成功すると、デバイスが再起動します。アップデートが失敗すると、softwareupdate.install-state
値がfailed
として送信されます。どちらの場合も、デバイスはsoftwareupdate.failure-reason
ステータスレポートを返します。アップデートが正常に完了した場合、カウントキーの値は0
です。

フェーズ6
次に、デバイスはMDMソリューションに以下の情報を返します。アップデートによっては、これらのオブジェクトに戻り値がない場合があります。
StatusDeviceOperatingSystemVersion: デバイスのオペレーティングシステムバージョンのステータスレポート。
StatusDeviceOperatingSystemBuildVersion: デバイスのソフトウェアビルド識別子のステータスレポート。
StatusDeviceOperatingSystemSupplementalBuildVersion: デバイスのオペレーティングシステムバージョンと緊急セキュリティ対応ビルド識別子のステータスレポート。
StatusDeviceOperatingSystemSupplementalExtraVersion: デバイスのオペレーティングシステムの緊急セキュリティ対応識別子のステータスレポート。

フェーズ7
MDMソリューションは、デバイスから宣言の割り当てを解除し、同期を開始するプッシュ通知をデバイスに送信します。同期後、デバイスは宣言を削除します。
