
Geräteverwaltung zum Anwenden von Softwareupdates auf Apple-Geräte verwenden
Die deklarative Geräteverwaltung ist die Zukunft der Geräteverwaltung von Apple. Damit ist es möglich, dass Einstellungen asynchron auf ein Gerät angewendet werden können und es seinen Status an den Geräteverwaltungsdienst ohne kontinuierliche Abfrage zurückgibt. Das ist ideal für die Leistung und Skalierbarkeit und ermöglicht auch einen modernen Ansatz für die Verwaltung von Softwareupdates. Die deklarative Geräteverwaltung bietet proaktive Statusberichte von Geräten, während sich Werte und Konfigurationen verändern. Auf diese Weise hat ein Geräteverwaltungsdienst immer einen aktuellen Überblick über Geräte, ohne dass regelmäßige Abfragen erforderlich sind.
Ein Geräteverwaltungsdienst deklariert die gewünschte Version des Betriebssystems und delegiert die Aufgabe an das Gerät selbst, um diesen Zustand zu erreichen, anstatt einen Befehl für ein Softwareupdate an ein Gerät zu senden, um ein Update zu initiieren. Dadurch wird der Softwareupdate-Vorgang resilienter und auch für Benutzer:innen transparenter.
Die Wichtigkeit der Verwendung von Softwareupdatedeklarationen
Geräteverwaltungsdienste müssen Softwareupdatedeklarationen nach Möglichkeit verwenden. Jedoch sind ältere Softwareupdatebefehle und -profile noch immer verfügbar und werden unterstützt. Mit den folgenden Änderungen können sie zeitgleich mit Softwareupdatedeklarationen arbeiten:
Von einer Deklaration definierte Aufschübe haben Vorrang vor Aufschüben, die von einer Einschränkung konfiguriert wurden.
Die Einstellungen für automatische Softwareupdates in macOS, die von einer Deklaration angewendet wurde, haben Vorrang vor den Einstellungen für automatische Updates, die in einem Konfigurationsprofil bereitgestellt wurden.
Wenn ein anstehendes Softwareupdate vom Betriebssystem mit einer deklarativen Geräteverwaltung konfiguriert wurde, kann der Client einige Geräteverwaltungsbefehle nicht mehr verarbeiten und gibt stattdessen Fehlermeldungen zurück, die besagen, dass es eine aktive Deklaration auf dem Gerät gibt, wie in der folgenden Tabelle erklärt wird:
Befehl für die Geräteverwaltung | Ergebnis | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Limitiert: Bei Mac-Computern können auf dem Betriebssystem basierende Updates, die nicht verwaltet sind, in der Befehlsantwort angezeigt werden, z. B. in Xcode oder Befehlszeilenprogrammen. | ||||||||||
| Das Gerät gibt einen | ||||||||||
| Das Gerät gibt ein leeres Status-Array zurück. |
Verwenden des Lookup-Diensts der Apple-Software
Der Lookup-Dienst der Apple-Software (verfügbar unter https://gdmf.apple.com/v2/pmv) ist die offizielle Quelle für den Erhalt von Listen mit öffentlich verfügbaren Updates, Upgrades und schnellen Sicherheitsmaßnahmen. Dadurch kann ein Geräteverwaltungsdienst Versionen abfragen, sobald Apple sie veröffentlicht, und die Anwendbarkeit für jedes Hardwaremodell zeitnah und korrekt berechnen.
Die JSON-Antwort enthält drei Listen verfügbarer Softwareveröffentlichungen:
PublicAssetSets: Diese Liste enthält die neuesten Versionen, die öffentlich verfügbar sind, wenn versucht wird ein Update oder ein Upgrade auszuführen.
AssetSets: Diese Liste ist eine Teilmenge von
PublicAssetSets
und enthält alle Versionen, die von Geräteverwaltungsdiensten auf Geräte übertragen werden können.PublicRapidSecurityResponses: Diese Liste enthält die Veröffentlichungen der schnellen Sicherheitsmaßnahmen, die derzeit für Apple-Geräte verfügbar sind.
Jedes Element in der Liste enthält die Produktversions
-Nummer und den Build
des Betriebssystems, das Veröffentlichungsdatum
, an dem die Version veröffentlich wurde, das Ablaufdatum
sowie eine Liste unterstützter Geräte
für diese Version. Die Geräteliste entspricht dem ProductName
-Wert des Geräts, die in der DeviceInformation
-Antwort, der ursprünglichen Authenticate
-Anfrage oder in der MachineInfo
zurückgegeben wird, wenn das Gerät versucht, sich anzumelden.
Das Ablaufdatum ist üblicherweise auf 180 Tage nach dem Veröffentlichungsdatum festgelegt und definiert das Datum, an dem die Signatur des Updates abläuft. Ein abgelaufenes Update kann nicht mehr auf Geräten installiert werden. Wenn nachfolgende Updates zur Verfügung gestellt werden, können die Ablaufdaten vorheriger Updates aktualisiert werden. Wird kein Ablaufdatum bereitgestellt, ist das Update nicht abgelaufen. Ein Update ist nur dann abgelaufen, wenn sein Ablaufdatum in der Vergangenheit liegt.
Die Assets werden nach Betriebssytemplattform gruppiert und verwenden die folgenden Schlüssel:
iOS
(enthält auch iPadOS, tvOS und watchOS)macOS
visionOS
{
"AssetSets": {
"iOS": [
{
"ProductVersion": "18.2.1",
"Build": "22C6161",
"PostingDate": "2025-01-06",
"ExpirationDate": "2025-04-17",
"SupportedDevices": ["iPad11,1", "iPad11,2", "iPad11,3", "iPad11,4", "iPad11,6", "iPad11,7", "iPad12,1", "iPad12,2", "iPad13,1", "iPad13,10", "iPad13,11", "iPad13,16", "iPad13,17", "iPad13,18", "iPad13,19", "iPad13,2", "iPad13,4", "iPad13,5", "iPad13,6", "iPad13,7", "iPad13,8", "iPad13,9", "iPad14,1", "iPad14,10", "iPad14,11", "iPad14,2", "iPad14,3", "iPad14,4", "iPad14,5", "iPad14,6", "iPad14,8", "iPad14,9", "iPad16,1", "iPad16,2", "iPad16,3", "iPad16,4", "iPad16,5", "iPad16,6", "iPad7,11", "iPad7,12", "iPad8,1", "iPad8,10", "iPad8,11", "iPad8,12", "iPad8,2", "iPad8,3", "iPad8,4", "iPad8,5", "iPad8,6", "iPad8,7", "iPad8,8", "iPad8,9", "iPhone11,2", "iPhone11,4", "iPhone11,6", "iPhone11,8", "iPhone12,1", "iPhone12,3", "iPhone12,5", "iPhone12,8", "iPhone13,1", "iPhone13,2", "iPhone13,3", "iPhone13,4", "iPhone14,2", "iPhone14,3", "iPhone14,4", "iPhone14,5", "iPhone14,6", "iPhone14,7", "iPhone14,8", "iPhone15,2", "iPhone15,3", "iPhone15,4", "iPhone15,5", "iPhone16,1", "iPhone16,2", "iPhone17,1", "iPhone17,2", "iPhone17,3", "iPhone17,4"
]
},
Anhand der Produktversionsliste kannst du erkennen, welche Versionen neuer sind als die aktuelle Betriebssystemversion des Geräts und auf ein bestimmtes Gerät angewendet werden können. Stelle die Liste der Versionen anschließend dem:der Geräteverwaltungsdienstadmin als mögliche Kandidaten für Betriebssystemupdates bereit.
Statusbericht an den Geräteverwaltungsdienst senden
Damit Updates für Statusobjekte erhalten werden können, während sie sich ändern, muss der Server jeden Statusbericht unterschreiben, indem er eine ManagementStatusSubscriptions
-Deklaration an das Gerät sendet. Das Gerät sendet dann einen StatusReport
an den Geräteverwaltungsdienst, wenn eine ManagementStatusSubscriptions
-Deklaration aktiv wird, wenn sich der Status des unterschriebenen Objekts ändern sowie alle 24 Stunden.
Für die Überwachung der Betriebssystemversionen und dem Status des Softwareupdates will der Geräteverwaltungsdienst möglicherweise die folgenden Statusberichte unterschreiben:
Statusbericht | Beschreibung |
---|---|
| Die Build-Version des Betriebssystems auf dem Gerät (z. B. 21E219). |
| Die Version des Betriebssystems, das auf dem Gerät verwendet wird (z B. 17.4). |
| Das Build des Betriebssystems und die Versionen der Sicherheitsmaßnahmen, die auf dem Gerät verwendet werden (z. B. 20A123a oder 20F75c). |
| Die Version der Sicherheitsmaßnahme des Betriebssystems, die auf dem Gerät verwendet wird (z. B. a). |
| Ein Wörterbuch, das die Versionen des Builds und des Betriebssystems des Softwareupdates enthält, das auf dem Gerät aussteht. |
| Der Installationsstatus des Softwareupdates – enthält folgende Werte:
|
| Ein Wörterbuch mit Details zu dem Grund eines ausstehenden Softwareupdates. Der Schlüssel
|
| Details zum Fehlschlag eines Softwareupdates. Die Details enthalten die Anzahl der Fehlschläge des Softwareupdates, den Zeitstempel des letzten Fehlschlags und den Grund des Fehlschlags. |
| Der registrierte Name des Beta-Programms des Geräts oder eine leere Zeichenkette, falls kein Beta-Programm registriert ist. |
Zusätzlich zu den anderen Berichten können Geräteverwaltungsdienste softwareupdate.install-reason
, falls gewünscht, auch für Admins zu Supportzwecken zur Verfügung stellen oder um weitere Einblicke darin zu liefern, wie Updates ausgelöst werden. Mit diesem Wörterbuch kann bestimmt werden, ob das Softwareupdate durch Benutzer:innen initialisiert wurde, automatisch erfolgte oder durch eine Erzwingungsdeklaration durchgesetzt wurde.
Anfordern einer bestimmten Mindestsoftwareversion während der Registrierung
Wenn ein Gerät diese Fähigkeiten unterstützt, wird in den MachineInfo
-Daten ein Schlüssel MDM_CAN_REQUEST_SOFTWARE_UPDATE
zurückgegeben, dessen Wert „True“ (wahr) ist. Dieser Wert wird in der ursprünglichen HTTP POST
-Anfrage an den Geräteverwaltungsdienst gesendet, wenn das Gerät eine Verwaltungskonfiguration in im Systemassistenten entdeckt. Weitere Informationen erhältst du in der yaml-Datei MachineInfo im GitHub-Repository für die Apple-Geräteverwaltung.
Zusätzlich stehen folgende Felder in den Daten von MachineInfo
zur Verfügung (nur Zeichenketten):
Schlüssel | Mindestens unterstützte Betriebssystemversionen | Beschreibung | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
VERSION | iOS 17 iPadOS 17 macOS 14 | Die auf dem Gerät installierte Build-Version (beispielsweise 7A182). | |||||||||
OS_VERSION | iOS 17 iPadOS 17 macOS 14 | Die Version des Betriebssystems, das auf dem Gerät installiert ist (beispielsweise 17.0). | |||||||||
SUPPLEMENTAL_BUILD_VERSION | iOS 17 iPadOS 17 macOS 14 | Die Version der schnellen Sicherheitsmaßnahme (falls verfügbar). | |||||||||
SUPPLEMENTAL_OS_VERSION_EXTRA | iOS 17 iPadOS 17 macOS 14 | Die Versionserweiterung der schnellen Sicherheitsmaßnahme (falls verfügbar). | |||||||||
SOFTWARE_UPDATE_DEVICE_ID | iOS 17.4 iPadOS 17.4 macOS 14.4 | Die Modell-ID des Geräts, anhand derer verfügbare Systemupdates im Lookup-Dienst der Apple-Software gesucht werden. |
Anhand der bereitgestellten Informationen kann der Geräteverwaltungsdienst entscheiden, ob das Geräteupdate durchgesetzt werden soll.
Wenn ein Geräteverwaltungsdienst ein Softwareupdate nicht erzwingt, gibt er einfach das Registrierungsprofil als Antwort auf die
HTTP POST
-Anfrage zurück, wie es auch geschieht, um die Registrierung fortzusetzen.Wenn der Geräteverwaltungsdienst ein Softwareupdate erzwingen möchte, muss er eine
HTTP
-Antwort mit dem Statuscode 403 zurücksenden und ein JSON- oder XML-Objekt im Antworttext enthalten (der Antwortheader für denHTTP Content-Type
muss aufapplication/json
bzw.application/xml
gesetzt sein).
Nachdem das Gerät diese fehlerbezogene Antwort erhält, versucht es auf die angegebene Version zu aktualisieren. Wenn das Update erfolgreich ist, startet das Gerät neu und der Systemassistent muss erneut durchgeführt werden. Die nächste MachineInfo POST
-Anfrage des Geräts an den Geräteverwaltungsdienst zeigt die aktualisierte Betriebssystemversion an und der Dienst kann dann mit der Registrierung fortfahren. Wenn das Update fehlschlägt, wird Benutzer:innen eine Fehlernachricht angezeigt und das Fenster „Remoteverwaltung“ wird erneut im Systemassistenten angezeigt.
Das response
-Schema wird in der Tabelle unten angezeigt.
Schlüssel | Typ | Erforderlich | Beschreibung | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Zeichenkette | Ja | Muss auf | ||||||||
| Zeichenkette | Nein | Die Beschreibung des Fehlers. Wird nur für Anmeldezwecke verwendet. | ||||||||
| Zeichenkette | Nein | Die Beschreibung des Fehlers in von Benutzer:innen lesbarer Form. | ||||||||
| Lexikon | Ja | Weitere Daten, die das Softwareupdate präzisieren. |
Das Wörterbuchschema für details
wird hier definiert.
Schlüssel | Typ | Erforderlich | Beschreibung | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Zeichenkette | Ja | Die Betriebssystemversion, auf die das Gerät aktualisiert werden soll. | ||||||||
| Zeichenkette | Nein | Die Build-Version, auf die das Gerät aktualisiert werden soll. | ||||||||
| Lexikon | Nein | Das Gerät wird im Beta-Programm registriert und erlaubt durchgesetzte Softwareupdates auf Betriebssystemversionen des Beta-Programms. Das Gerät verbleibt im Beta-Programm, nachdem das durchgesetzte Softwareupdate abgeschlossen ist. |
Wenn nur OSVersion
angegeben wird, lädt und installiert ein Gerät automatisch sämtliche für diese Version verfügbaren schnellen Sicherheitsmaßnahmen. Falls ein bestimmter Build oder eine ergänzende Version benötigt wird, kann ein Geräteverwaltungsdienst auch optional BuildVersion
angeben. Um beispielsweise für ein Gerät iOS 16.5.1(a) als Voraussetzung für die Registrierung festzulegen – obwohl bereits iOS 16.5.1(c) verfügbar ist – muss ein Geräteverwaltungsdienst für OSVersion
die Option iOS 16.5.1
festlegen sowie BuildVersion
auf 20F770750b
setzen.
Wichtig: Vor macOS 15 konnten nur Versionen der Listen PublicAssetSets
und PublicRapidSecurityResponses
angegeben werden. In macOS 15 können Assets auch von AssetSets
genutzt werden.
Geräteverwaltungseinstellungen für Softwareupdates
Die Deklaration com.apple.configuration.softwareupdate.settings
(verfügbar in iOS 18, iPadOS 18, macOS 15, tvOS 18.4 oder neuer) besteht aus Wörterbüchern, mit denen zahlreiche Verhaltensaspekte eines Softwareupdates konfiguriert werden können.
Nachdem ein Geräteverwaltungsdienst verschiedene Schlüssel auf mehrere Deklarationen verteilt, führt ein Gerät die Einstellungen aller aktiven Deklarationen für Softwareupdate-Einstellungen zusammen. Wenn mehrere Deklarationen denselben Schlüssel konfigurieren, hängt das Zusammenführungsverhalten vom jeweiligen Schlüssel ab, wie in der folgenden Tabelle erläutert wird.
Automatische Softwareupdates mit der Geräteverwaltung konfigurieren
Die Deklaration com.apple.configuration.softwareupdate.settings
verfügt über ein Wörterbuch, mit dem das Verhalten für automatische Softwareupdates auf betreuten iPhones, iPads, Apple TVs und Macs definiert werden kann. Weitere Informationen findest du unter Wörterbuchschlüssel für AutomaticActions.
Wie ein Geräteverwaltungsdienst mit schnellen Sicherheitsmaßnahmen umgeht
Schnelle Sicherheitsmaßnahmen betreffen immer die neueste Version eines Betriebssystems, welches somit die Basisversion der schnellen Sicherheitsmaßnahme bildet. Wenn beispielsweise auf einem iPhone iOS 17.2 als Betriebssystemversion installiert ist, wird das ergänzende Update 17.2 (a) angewendet, sofern vorhanden. Unter iOS 18, iPadOS 18 und macOS 15 wurden kombinierte Updates zur Verfügung gestellt, die es ermöglichen, dass Softwareupdates alle verfügbaren schnellen Sicherheitsmaßnahmen enthalten.
Vor iOS 18, iPadOS 18 und macOS 15 muss ein Geräteverwaltungsdienst möglicherweise zwei Softwareupdates veranlassen, um sicherzustellen, dass die ergänzende Version vorhanden ist. Zuerst muss das Gerät auf die Basisversion des ergänzenden Updates aktualisiert werden, falls das Gerät diese nicht bereits installiert hat (beispielsweise iOS 17.1 auf iOS 17.2). Anschließend muss die Basisversion auf die ergänzende Version aktualisiert werden (beispielsweise iOS 17.2 auf iOS 17.2 (a)).
In iOS 18, iPadOS 18 und macOS 15 kann ein Geräteverwaltungsdienst entweder angeben:
Entweder die Betriebssystemversion (wodurch verfügbare schnelle Sicherheitsmaßnahmen automatisch installiert werden)
Oder die ergänzende Build-Version (wodurch ein Gerät während des Prozesses automatisch erforderliche Updates auf die Basisversion durchführt)
Diese zwei Ansätze betreffen die Konfiguration zum Durchsetzen von Softwareupdates sowie zur Mindestversion während der automatischen Geräteregistrierung.
Die Deklaration com.apple.configuration.softwareupdate.settings
kann auch verwendet werden, um das Verhalten von schnellen Sicherheitsmaßnahmen auf betreuten iPhones, iPads und Macs zu konfigurieren. Weitere Informationen findest du unter Wörterbuchschlüssel für RapidSecurityResponse unter iOS, iPadOS und macOS.
Softwareupdate mit der Geräteverwaltung verschieben
Um ein Softwareupdate oder -upgrade einen bis 90 Tage zu verschieben, verwende die Deklaration com.apple.configuration.softwareupdate.settings
auf betreuten iPhones, iPads und Macs.
Über eine konfigurierte Verschiebung wird definiert, wie viele Tage es dauert, bis eine Organisation eine Veröffentlichung Benutzer:innen anbietet, bevor sie öffentlich verfügbar ist. Unabhängig von der konfigurierten Verschiebung kann ein Geräteverwaltungsdienst dennoch auf betreuten Geräten ein bestimmtes Softwareupdate oder eine schnelle Sicherheitsmaßnahme durchsetzen. Weitere Informationen findest du unter Wörterbuchschlüssel für das Verschieben unter iOS, iPadOS und tvOS und Wörterbuchschlüssel für das Verschieben unter macOS.
Hinweis: Das Verschieben von Softwareupdates verschiebt auch alle schnellen Sicherheitsmaßnahmen, die auf dieser Version basieren.
Softwareupdates mit der Geräteverwaltung durchsetzen
Um ein Softwareupdate auf Geräten, die per Geräteregistrierung oder automatischer Geräteregistrierung registriert wurden, bis zu einem bestimmten Zeitpunkt durchzusetzen, können Geräteverwaltungsdienste die Deklaration com.apple.configuration.softwareupdate.enforcement.specific
anwenden.
Wenn eine Konfiguration auf ein Gerät angewendet wird, das eine Betriebssystem- oder Build-Version angibt, die identisch oder älter ist als die aktuelle Version auf dem Gerät, gibt das Gerät einen Fehler im Statusbericht zurück.
Wenn mehrere Konfigurationen mit neuerer Betriebssystem- oder Build-Version vorhanden sind, als die aktuelle Version auf dem Gerät, wird die Konfiguration mit frühestem Datum und Uhrzeit zuerst verarbeitet. Die anderen verbleiben in der Warteschlange. Wenn die Version auf dem Gerät aktualisiert wird, wird die Gruppe der Konfigurationen erneut verarbeitet, um zu bestimmen, welche als nächstes verarbeitet wird. Im Rahmen dieses Vorgangs ignoriert das Gerät alle vorhandenen Konfigurationen, die eine Version angeben, die älter oder gleich der aktuellen Version ist.
Das Betriebssystem installiert automatisch alle verfügbaren schnellen Sicherheitsmaßnahmen, wenn ein Geräteverwaltungsdienst nur TargetOSVersion
definiert. Um eine bestimmte Version oder schnelle Sicherheitsmaßnahme anzuwenden, kann ein Geräteverwaltungsdienst zusätzlich zur Angabe des Builds einschließlich der ergänzenden Versions-ID den Schlüssel TargetBuildVersion
verwenden.
Weitere Informationen findest du unter Wörterbuchschlüssel für durchgesetzte Softwareupdates.
Mitteilungen
Der Notifications-Schlüssel ändert das Standardverhalten für Benachrichtigungen. Es wird nur eine Mitteilung 1 Stunde vor dem Durchsetzungszeitpunkt sowie ein Countdown für den Neustart angezeigt. Weitere Informationen findest du unter Notifications-Schlüssel.
Verwenden des Bootstrap Tokens für Mac-Computer mit Apple Chips
Um ein durchgesetztes Softwareupdate auf betreuten Mac-Computern mit Apple Chips zu autorisieren, kann ein Geräteverwaltungsdienst ein Bootstrap Token anfordern und hinterlegen. Dadurch läuft das Softwareupdate reibungslos ab und die Notwendigkeit von Interaktion von Seiten der Benutzer:innen als Teil des Vorgangs wird vermieden. Bei Bedarf verwendet das Gerät eine GetBootstrapTokenRequest
, um das Bootstrap Token vom Geräteverwaltungsdienst abzurufen.
Im ersten Schritt bestimmt der Geräteverwaltungsdienst mithilfe des Befehls SecurityInfo
, ob das Gerät ein Bootstrap Token unterstützt. Enthält die Antwort ein BootstrapTokenRequiredForSoftwareUpdate
, das auf „true
“ gesetzt ist, kann das Gerät ein Bootstrap Token zum Autorisieren des Softwareupdates verwenden.
Um ein Bootstrap Token zu erstellen, muss der Geräteverwaltungsdienst com.apple.mdm.bootstraptoken
zum ServerCapabilities
-Array im Geräteverwaltungsprofil hinzufügen. Weitere Informationen findest du unter Geräteverwaltungsprofil auf der Apple Developer-Website.
Nachdem das Gerät das Bootstrap Token erhält, wird bei der nächsten Anmeldung einer für Secure Token aktivierten Person ein Bootstrap Token erstellt. Anschließend greift es auf den Check-In-Endpunkt des Geräteverwaltungsdienstes zu und verwaltet das Token mit einer SetBootstrapTokenRequest
treuhänderisch. Weitere Informationen findest du unter Set Bootstrap Token auf der Apple Developer-Website.
Weitere Informationen zu den aktuellsten Schemaspezifikationen findest du unter GitHub-Repository für die Apple-Geräteverwaltung.