
Använda enhetshantering till att driftsätta programuppdateringar för Apple-enheter
Deklarativ enhetshantering är framtiden för hantering av Apple-enheter. Den gör att enheten kan använda inställningar asynkront och rapportera status till enhetshanteringstjänsten utan kontinuerliga förfrågningar. Det här är perfekt för prestanda och skalbarhet och tillhandahåller även ett avancerat förhållningssätt till hantering av programuppdateringar. Deklarativ enhetshantering erbjuder proaktiv statusrapportering från enheter, till exempel värden och konfigurationsändringar. På det här sättet har en enhetshanteringstjänst alltid en uppdaterad vy av enheter utan att behöva utföra regelbundna förfrågningar.
Istället för att skicka ett programuppdateringskommando till en enhet för att inleda en uppdatering deklarerar en enhetshanteringstjänst den önskade operativsystemsstatusen och delegerar uppgiften att åstadkomma den statusen till själva enheten. Det här gör hanteringen av programuppdateringsprocessen mer robust och ger större insyn för användare.
Vikten av att dra nytta av programuppdateringsdeklarationer
Enhetshanteringstjänster måste använda programuppdateringsdeklarationer när det är möjligt. Äldre kommandon och profiler för programuppdatering är dock fortfarande tillgängliga och stöds. De kan fungera i kombination med programuppdateringsdeklarationer med följande ändringar:
Fördröjningar som definieras av en deklaration har företräde framför fördröjningar som konfigureras av en begränsning.
Inställningar för automatisk programuppdatering i macOS som används av en deklaration har företräde framför inställningar för automatisk uppdatering som tillhandahålls i en konfigurationsprofil.
När det finns en väntande programuppdatering som operativsystemet konfigurerar med deklarativ enhetshantering kan klienten inte längre bearbeta vissa kommandon för enhetshantering och returnerar fel som meddelar att det finns en aktiv deklaration på enheten, vilket visas i följande tabell:
Kommando för enhetshantering | Resultat | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Begränsat: För Mac-datorer kan operativsystembaserade uppdateringar som inte hanteras visas i kommandosvaret, till exempel i Xcode eller kommandoradsverktyg. | ||||||||||
| Enheten returnerar felet | ||||||||||
| Enheten returnerar en tom statusarray. |
Använda Apple Software Lookup Service
Apple Software Lookup Service (finns på https://gdmf.apple.com/v2/pmv) är den officiella resursen där du kan få en lista över offentligt tillgängliga uppdateringar, uppgraderingar och snabba säkerhetssvar. Den gör det möjligt för en enhetshanteringstjänst att efterfråga versioner så fort Apple publicerar dem och beräkna användbarhet för varje maskinvarumodell korrekt och utan dröjsmål.
JSON-svaret innehåller tre listor med tillgängliga programvaruversioner:
PublicAssetSets: Den här listan innehåller de senast släppta versionerna som är offentligt tillgängliga om användare försöker uppdatera eller uppgradera.
AssetSets: Den här listan är en delmängd av
PublicAssetSets
och innehåller alla versioner som är tillgängliga för enhetshanteringstjänster att skicka till enheter.PublicRapidSecurityResponses: Den här listan innehåller släppta snabba säkerhetssvar som för närvarande är tillgängliga för Apple-enheter.
Varje element i listan innehåller ProductVersion
-numret och Build
för operativsystemet, PostingDate
när versionen publicerades, ExpirationDate
och en lista med SupportedDevices
för den versionen. Enhetslistan matchar ProductName
-värdet från enheten som returneras i ett DeviceInformation
-svar, inledande Authenticate
-förfrågan eller i MachineInfo
när enheten försöker registrera.
Sista giltighetsdatum, vanligtvis angivet som 180 dagar efter postningsdatumet, definierar det datum som signeringen av uppdateringen slutar gälla. En uppdatering som har slutat gälla kan inte längre installeras på enheter. När efterföljande uppdateringar släpps kanske föregående uppdateringars giltighetsdatum uppdateras. Om ett giltighetsdatum inte har angetts löper inte uppdateringen ut. En uppdatering löper endast ut när dess sista giltighetsdatum har passerats.
Resurserna är grupperade efter operativsystemsplattform med följande nycklar:
iOS
(som inkluderar iPadOS, tvOS och 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"
]
},
Använd listan med produktversioner till att fastställa vilka versioner som är nyare än enhetens aktuella operativsystemsversion och är lämpliga för en specifik enhet. Tillhandahåll sedan den listan med versioner till administratören för enhetshanteringstjänsten som möjliga kandidater för operativsystemsuppdatering.
Skicka en statusrapport till enhetshanteringstjänsten
För att få uppdateringar för statusobjekt när de ändras måste servern abonnera på varje statusrapport genom att skicka en ManagementStatusSubscriptions
-deklaration till enheten. Enheten skickar sedan en StatusReport
till enhetshanteringstjänsten när en ManagementStatusSubscriptions
-deklaration blir aktiv, om statusen för ett abonnerat objekt ändras och var 24:e timme.
För att kunna övervaka operativsystemversioner och programuppdateringsstatus kan enhetshanteringstjänsten abonnera på följande statusrapporter:
Statusrapport | Beskrivning |
---|---|
| Operativsystemets byggversion på enheten (till exempel 21E219). |
| Operativsystemsversionen som används på enheten (till exempel 17.4). |
| Operativsystemets bygge och version av snabbt säkerhetssvar som används på enheten (till exempel 20A123a eller 20F75c). |
| Operativsystemets version av snabbt säkerhetssvar som används på enheten (till exempel a). |
| En ordbok som innehåller bygg- och operativsystemsversionerna för programuppdateringen som är väntande på enheten. |
| Programuppdateringens installationsstatus som har följande värden:
|
| En ordbok som innehåller detaljer om orsaken till en väntande programuppdatering. Nyckeln
|
| Detaljer om en misslyckad programuppdatering. Detaljerna omfattar antalet gånger programuppdateringen har misslyckats, tidsstämpel för senaste försöket och orsaken till misslyckandet. |
| Enhetens registrerade betaprogramnamn eller en tom sträng om det inte finns något registrerat betaprogram. |
Förutom de andra rapporterna kan enhetshanteringstjänster även göra softwareupdate.install-reason
tillgängligt för administratörer i supportsyfte och för att ge ytterligare insikt i hur en uppdatering sker. Du kan använda den här ordboken till att avgöra om en användare inleder uppdateringen, om uppdateringen sker automatiskt eller om den inleds av en deklaration för genomdrivning av programuppdatering.
Kräva en specifik lägsta programvaruversion under registrering
Om en enhet stöder denna funktion returnerar den en MDM_CAN_REQUEST_SOFTWARE_UPDATE
-nyckel inställd på True i de MachineInfo
-data som den skickar till den inledande HTTP POST
-förfrågningen till enhetshanteringstjänsten när enheten upptäcker en hanteringskonfiguration i inställningsassistenten. Mer information finns i MachineInfo yaml file på Apples GitHub för enhetshantering.
Dessutom tillhandahåller enheter följande fält i MachineInfo
-data (alla strängar):
Nyckel | Lägsta operativsystemsversioner som stöds | Beskrivning | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
VERSION | iOS 17 iPadOS 17 macOS 14 | Byggversionen som är installerad på enheten (till exempel 7A182). | |||||||||
OS_VERSION | iOS 17 iPadOS 17 macOS 14 | Operativsystemsversionen som är installerad på enheten (till exempel 17.0). | |||||||||
SUPPLEMENTAL_BUILD_VERSION | iOS 17 iPadOS 17 macOS 14 | Enhetens version av snabbt säkerhetssvar (om en sådan är tillgänglig). | |||||||||
SUPPLEMENTAL_OS_VERSION_EXTRA | iOS 17 iPadOS 17 macOS 14 | Enhetens versionsextra av snabbt säkerhetssvar (om en sådan är tillgänglig). | |||||||||
SOFTWARE_UPDATE_DEVICE_ID | iOS 17.4 iPadOS 17.4 macOS 14.4 | Enhetens modell-ID som används till att leta efter tillgängliga operativsystemuppdateringar i Apple Software Lookup Service. |
Baserat på den tillhandahållna informationen kan enhetshanteringstjänsten avgöra om den ska genomdriva en uppdatering på enheten.
Om en enhetshanteringstjänst väljer att inte genomdriva en programuppdatering returnerar den helt enkelt registreringsprofilen som svar på en
HTTP POST
-förfrågan för att tillåta att registreringen fortsätter.Om enhetshanteringstjänsten väljer att genomdriva en programuppdatering måste den returnera ett
HTTP
-svar med statuskoden 403 samt inkludera ett JSON- eller XML-objekt i svarets brödtext (HTTP Content-Type-
responshuvudet måste vara inställt påapplication/json
respektiveapplication/xml
).
När detta felsvar har tagits emot försöker enheten att uppdatera till den angivna versionen. Om uppdateringen slutförs startar enheten om och användaren måste gå igenom inställningsassistenten på nytt. Nästa MachineInfo POST
-förfrågan från enheten till enhetshanteringstjänsten visar den uppdaterade operativsystemversionen och tjänsten kan sedan fortsätta med registreringen. Om uppdateringen misslyckas visas ett felmeddelande för användaren och fjärrhanteringspanelen visas igen i inställningsassistenten.
Schemat för response
definieras i tabellen nedan.
Nyckel | Typ | Krävs | Beskrivning | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Sträng | Ja | Måste vara inställt på | ||||||||
| Sträng | Nej | Beskrivningen av felet. Använd endast för loggningssyften. | ||||||||
| Sträng | Nej | Beskrivningen av felet som är lämpligt att visa för användaren. | ||||||||
| Ordbok | Ja | Ytterligare data specificerar programuppdateringen. |
Ordboksschemat details
definieras här.
Nyckel | Typ | Krävs | Beskrivning | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Sträng | Ja | Operativsystemversionen som enheten måste uppdatera till. | ||||||||
| Sträng | Nej | Byggversionen som enheten måste uppdatera till. | ||||||||
| Ordbok | Nej | Enheten registreras i betaprogrammet och genomdrivning av programuppdateringar till betaprogrammets operativsystemversioner tillåts. Enheten stannar kvar i betaprogrammet efter att den genomdrivna programuppdateringen har utförts. |
Om du endast anger OSVersion
hämtar och installerar en enhet automatiskt eventuella snabba säkerhetssvar som är tillgängliga för den versionen. Om ett visst bygge eller en tilläggsversion krävs kan en enhetshanteringstjänst också välja att specificera BuildVersion
. Om en enhet till exempel måste ha iOS 16.5.1(a) innan registreringen – trots att iOS 16.5.1(c) redan är tillgänglig – måste en enhetshanteringstjänst ställa in OSVersion
på iOS 16.5.1
och BuildVersion
på 20F770750b
.
Viktigt: I äldre versioner än macOS 15 kan endast släpp från listorna PublicAssetSets
och PublicRapidSecurityResponses
specificeras. I macOS 15 kan även resurser från AssetSets
användas.
Enhetshanteringsinställningar för programuppdateringar
Deklarationen com.apple.configuration.softwareupdate.settings
(tillgänglig i iOS 18, iPadOS 18, macOS 15, tvOS 18.4 eller senare) består av ordböcker som kan användas till att konfigurera olika aspekter av beteendet för programuppdateringar.
Efter att en enhetshanteringstjänst har distribuerat olika nycklar till flera deklarationer slår en enhet ihop inställningarna för alla aktiva deklarationer med programuppdateringsinställningar. Om samma nyckel konfigureras av flera deklarationer varierar hopslagningsbeteendet beroende på den enskilda nyckeln i enlighet med tabellerna nedan.
Konfigurera automatiska programuppdateringar med enhetshantering
Deklarationen com.apple.configuration.softwareupdate.settings
innehåller en ordbok som definierar beteendet för automatisk programuppdatering på övervakade iPhone-, iPad-, Apple TV- och Mac-enheter. Mer information finns i Ordboksnycklar för AutomaticActions.
Så här hanteras snabba säkerhetssvar av en enhetshanteringstjänst
Snabba säkerhetssvar används alltid på den senaste uppdateringen av ett operativsystem vilken blir basversionen för det snabba säkerhetssvaret. Om en iPhone till exempel har operativsystemversionen iOS 17.2 installerad används tilläggsuppdateringen 17.2 (a) om en sådan finns. I iOS 18, iPadOS 18 och macOS 15 har kombinerade uppdateringar gjorts tillgängliga, vilket tillåter att en programuppdatering innehåller alla eventuella tillgängliga snabba säkerhetssvar.
I versioner före iOS 18, iPadOS 18 och macOS 15 kanske en enhetshanteringstjänst måste utlösa två programuppdateringar för att säkerställa att en viss tilläggsversion installeras. Först måste den uppdatera enheten till grundversionen av tilläggsuppdateringen om enheten inte redan har den grundversionen (till exempel iOS 17.1 till iOS 17.2). Sedan måste den uppdatera grundversionen till tilläggsversionen (till exempel iOS 17.2 till iOS 17.2 (a)).
I iOS 18, iPadOS 18 och macOS 15 kan en enhetshanteringstjänst ange antingen:
Operativsystemversionen (som automatiskt installerar tillgängliga snabba säkerhetssvar)
Tilläggsbyggversionen (som leder till att enheten automatiskt utför en nödvändig uppdatering till basversionen som en del av processen)
De båda metoderna gäller för programuppdatering med en genomdrivningskonfiguration och den genomdrivna lägsta versionen under automatisk enhetsregistrering.
Deklarationen com.apple.configuration.softwareupdate.settings
kan också användas till att konfigurera beteendet för snabba säkerhetssvar på övervakade iPhone-, iPad- och Mac-enheter. Mer information finns i RapidSecurityResponse-ordboksnycklar för iOS, iPadOS och macOS.
Fördröja en programuppdatering med enhetshantering
Fördröjningen av en programuppdatering eller -uppgradering från 1 till 90 dagar görs med deklarationen com.apple.configuration.softwareupdate.settings
på övervakade iPhone-, iPad- och Mac-enheter.
En konfigurerad fördröjning definierar antalet dagar innan en organisation erbjuder en ny version till användare efter att den har släppts offentligt. Oberoende av en konfigurerad fördröjning kan en enhetshanteringstjänst fortfarande genomdriva specifika programuppdateringar, programuppgraderingar eller snabba säkerhetssvar på hanterade enheter. Mer information finns i Deferrals-ordboksnycklar för iOS, iPadOS och tvOS och Deferrals-ordboksnycklar för macOS.
Obs! Fördröjda programuppdateringar fördröjer även eventuella snabba säkerhetssvar som behöver den versionen.
Genomdriva programuppdateringar med enhetshantering
För att genomdriva en programuppdatering vid en viss tidpunkt på enheter som registreras med enhetsregistrering eller automatisk enhetsregistrering kan enhetshanteringstjänster använda deklarationen com.apple.configuration.softwareupdate.enforcement.specific
.
Om en konfiguration används på en enhet som specificerar ett operativsystem eller en byggversion som är likadan som, eller äldre än, den nuvarande versionen på enheten returnerar enheten ett fel i statusrapporten.
Om det finns flera konfigurationer, med en nyare operativsystem- eller byggversion än den nuvarande versionen på enheten, bearbetas konfigurationen med tidigast måldatum och -tid först medan de andra stannar kvar i kön. När enheten uppdateras till en ny version blir konfigurationsuppsättningen bearbetad på nytt för att fastställa vilken som hamnar först i kön. Som en del av den här processen ignorerar enheten alla befintliga konfigurationer som specificerar en version som är äldre eller likadan som den nuvarande.
Operativsystemet installerar automatiskt eventuella tillgängliga snabba säkerhetssvar om en enhetshanteringstjänst endast definierar TargetOSVersion
. För att sikta in sig på en viss version eller ett snabbt säkerhetssvar kan en enhetshanteringstjänst använda nyckeln TargetBuildVersion
utöver att ange bygget inklusive tilläggsversionens ID.
Mer information finns i Ordboksnycklar för genomdrivning av programuppdateringar.
Notiser
Nyckeln Notifications ändrar det förvalda notisbeteendet så att endast en notis visas 1 timme innan tiden för genomdrivningen och nedräkningen för omstart. Mer information finns i Nyckeln Notifications.
Använda bootstrap-token för Mac-datorer med Apple Silicon
Om du vill auktorisera en genomdriven programuppdatering på en övervakad Mac med Apple Silicon kan en enhetshanteringstjänst begära och deponera en bootstrap-token. Det möjliggör en helt sömlös program‑uppdaterings‑upplevelse som innebär att användaren slipper interagera som en del av processen. Vid behov använder enheten en GetBootstrapTokenRequest
till att hämta en bootstrap-token från enhetshanteringstjänsten.
I det första steget avgör enhetshanteringstjänsten om enheten stöder en bootstrap-token genom att använda kommandot SecurityInfo
. Om svaret innehåller BootstrapTokenRequiredForSoftwareUpdate
inställd på true
kan enheten använda en bootstrap-token till att auktorisera en programuppdatering.
Enhetshanteringstjänsten måste lägga till com.apple.mdm.bootstraptoken
i arrayen ServerCapabilities
i enhetshanteringsprofilen så att en bootstrap-token kan skapas. Mer information finns i Device Management Profile på Apple Developer-webbplatsen.
När enheten har tagit emot sin bootstrap-token skapar den en bootstrap-token nästa gång en användare med säkerhetstoken loggar in. Sedan kontaktar den kontrollslutpunkten i enhetshanteringstjänsten och deponerar denna token med SetBootstrapTokenRequest
. Mer information finns i Set Bootstrap Token på Apple Developer-webbplatsen.
Den mest aktuella schemaspecifikationen finns på Apples GitHub för enhetshantering.