
Usar gestão de dispositivos para implementar atualizações de software em dispositivos Apple
A gestão declarativa de dispositivos é o futuro da gestão de dispositivos Apple. Isto permite que o dispositivo aplique definições de forma assíncrona e comunique o estado ao serviço de gestão de dispositivos sem precisar de consultas constantes. Isto é ideal para desempenho e escalabilidade e também oferece uma abordagem moderna para gerir atualizações de software. A gestão declarativa de dispositivos oferece relatórios de estado proativos de dispositivos conforme os valores e configurações mudam. Desta forma, um serviço de gestão de dispositivos tem sempre uma visão atualizada dos dispositivos sem ter de realizar consultas regulares.
Em vez de enviar um comando de atualização de software a um dispositivo para iniciar uma atualização, um serviço de gestão de dispositivos declara o estado desejado da versão do sistema operativo e delega ao próprio dispositivo a tarefa de obter esse estado. Isto permite um processo de atualização de software gerido mais resiliente e maior transparência para o utilizador.
A importância de utilizar as declarações de atualização de software
Os serviços de gestão de dispositivos devem utilizar as declarações de atualização de software sempre que possível. No entanto, os comandos e perfis de atualização de software legado ainda estão disponíveis e são compatíveis. Podem funcionar em conjunto com declarações de atualização de software com as seguintes alterações:
Os adiamentos definidos por uma declaração têm precedência sobre os adiamentos configurados por uma restrição.
As definições de atualização de software automática no macOS aplicadas por uma declaração têm precedência sobre as definições de atualização automática fornecidas num perfil de configuração.
Quando houver uma atualização de software pendente que o sistema operativo configura usando a gestão declarativa de dispositivos, o cliente deixa de poder processar alguns comandos da gestão de dispositivos, devolvendo erros para comunicar que há uma declaração ativa no dispositivo, conforme mostrado na tabela abaixo:
Comando de gestão de dispositivos | Resultado | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Limitado: para computadores Mac portáteis, as atualizações baseadas no sistema operativo que não são geridas podem aparecer na resposta do comando (por exemplo, no Xcode ou na ferramentas da linha de comandos). | ||||||||||
| O dispositivo devolve um erro | ||||||||||
| O dispositivo devolve uma sequência de estado vazio. |
Usar o serviço de procura de software Apple
O Apple Software Lookup Service (disponível em https://gdmf.apple.com/v2/pmv) é o recurso oficial para obter uma lista de atualizações secundárias, atualizações principais e respostas de segurança rápidas disponíveis publicamente. Permite que um serviço de gestão de dispositivos envie consultas às versões assim que a Apple as publica e calcule a aplicabilidade para cada modelo de hardware de forma atempada e precisa.
A resposta JSON contém três listas de versões de software disponíveis:
PublicAssetSets: esta lista contém as últimas versões disponíveis para o público em geral se tentar fazer uma atualização secundária ou principal.
AssetSets: esta lista é um subconjunto de
PublicAssetSets
e contém todas as versões disponíveis para os serviços de gestão de dispositivos enviarem para dispositivos.PublicRapidSecurityResponses: esta lista contém versões de resposta de segurança rápida que não são disponibilizadas atualmente para dispositivos Apple.
Cada elemento da lista contém o número de ProductVersion
e o Build
do sistema operativo, a PostingDate
quando a versão foi publicada, a ExpirationDate
e uma lista de SupportedDevices
com essa versão. A lista de dispositivos corresponde ao valor ProductName
do dispositivo, o que é devolvido no pedido Authenticate
inicial ou na resposta DeviceInformation
, ou em MachineInfo
quando o dispositivo se tentar registar.
A data de validade, normalmente definida para 180 dias após a data de publicação, define a data em que a assinatura da atualização caduca. Uma atualização caducada já não pode ser instalada nos dispositivos. Quando as atualizações subsequentes forem disponibilizadas, é possível que as datas de validade das versões anteriores sejam atualizadas. Se não for fornecida uma data de validade, a atualização ainda não caducou. Uma atualização somente caducou quando apresenta uma data de validade no passado.
Os recursos são agrupados por plataforma do sistema operativo utilizando as seguintes chaves:
iOS
(que inclui o iPadOS, tvOS e 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"
]
},
Use a lista de versões de produtos para determinar que versões são posteriores à versão atual do sistema operativo do dispositivo e que são aplicáveis a um dispositivo específico. Depois, forneça essa lista de versões ao administrador do serviço de gestão de dispositivos como potenciais candidatos a atualização do sistema operativo.
Enviar um relatório de estado para o serviço de gestão de dispositivos
Para receber atualizações de elementos de estado conforme estes mudam, o servidor deve enviar uma declaração ManagementStatusSubscriptions
ao dispositivo para assinar cada relatório de estado. Depois, o dispositivo envia um StatusReport
ao serviço de gestão de dispositivos quando uma declaração ManagementStatusSubscriptions
se tornar ativa, se o estado de um elemento assinado mudar, e a cada 24 horas.
Para efeitos de monitorização de versões do sistema operativo e estado de atualização de software, o serviço de gestão de dispositivos pode querer assinar os seguintes relatórios de estado:
Relatório de estado | Description (Descrição) |
---|---|
| A versão da build do sistema operativo no dispositivo (por exemplo, 21E219). |
| A versão do sistema operativo em utilização no dispositivo (por exemplo, 17.4). |
| As versões de build do sistema operativo e da resposta de segurança rápida em utilização no dispositivo, por exemplo (20A123a ou 20F75c). |
| A versão da resposta de segurança rápida do sistema operativo em utilização no dispositivo (por exemplo, a). |
| Um dicionário que contém as versões da build e do sistema operativo da atualização de software que está pendente no dispositivo. |
| O estado da instalação da atualização de software, que tem os seguintes valores:
|
| Um dicionário com detalhes sobre o motivo para uma atualização de software pendente. A chave
|
| Detalhes sobre uma falha de atualização de software. Os detalhes incluem o número de vezes que a atualização do software falhou, o carimbo temporal da última falha e o motivo da falha. |
| O nome do programa beta registado do dispositivo ou uma cadeia vazia se não houver nenhum programa beta registado. |
Para além de outros relatórios, os serviços de gestão de dispositivos também podem querer disponibilizar softwareupdate.install-reason
aos administradores para efeitos de suporte e para fornecer informações adicionais sobre como acontece uma atualização. Pode usar este dicionário para determinar se um utilizador inicia a atualização, se a atualização acontece automaticamente ou se é iniciada por uma declaração de execução de atualização de software.
Pedir uma versão mínima específica do software durante o registo
Se um dispositivo for compatível com esta funcionalidade, devolve uma chave MDM_CAN_REQUEST_SOFTWARE_UPDATE
, definida como “Verdadeiro”, nos dados MachineInfo
que envia no pedido HTTP POST
inicial para o serviço de gestão de dispositivos quando o dispositivo detetar uma configuração de gestão no Assistente de Configuração. Encontrará mais informação sobre o ficheiro MachineInfo yaml no repositório GitHub de gestão de dispositivos Apple.
Além disso, os dispositivos fornecem os seguintes campos nos dados MachineInfo
(todas as cadeias):
Chave | Versões de sistemas operativos mínimos compatíveis | Description (Descrição) | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
VERSION (VERSÃO) | iOS 17 iPadOS 17 macOS 14 | A versão da build instalada no dispositivo (por exemplo, 7A182). | |||||||||
OS_VERSION | iOS 17 iPadOS 17 macOS 14 | A versão do sistema operativo instalado no dispositivo (por exemplo, 17.0). | |||||||||
SUPPLEMENTAL_BUILD_VERSION | iOS 17 iPadOS 17 macOS 14 | A versão da resposta de segurança rápida do dispositivo (se houver uma disponível). | |||||||||
SUPPLEMENTAL_OS_VERSION_EXTRA | iOS 17 iPadOS 17 macOS 14 | A versão extra da resposta de segurança rápida do dispositivo (se houver uma disponível). | |||||||||
SOFTWARE_UPDATE_DEVICE_ID | iOS 17.4 iPadOS 17.4 macOS 14.4 | O identificador do modelo do dispositivo usado para procurar atualizações disponíveis do sistema operativo no serviço de pesquisa de software Apple. |
Com base na informação fornecida, o serviço de gestão de dispositivos pode decidir forçar o dispositivo a atualizar.
Se um serviço de gestão de dispositivos decidir não forçar a atualização do software, devolve simplesmente o perfil de registo em resposta ao pedido
HTTP POST
, como faz para permitir que o registo avance.Se o serviço de gestão de dispositivos decidir forçar a atualização do software, tem de devolver uma resposta
HTTP
com o código de estado 403 e incluir um objeto JSON ou XML no corpo de resposta (o cabeçalho de respostaHTTP Content‑Type
tem de ser enviado paraapplication/json
ouapplication/xml
, respetivamente).
Depois de receber esta resposta de erro, o dispositivo tenta atualizar a versão especificada. Se a atualização for bem-sucedida, o dispositivo será reiniciado e o utilizador deverá passar pelo Assistente de Configuração novamente. O pedido POST MachineInfo
seguinte do dispositivo para o serviço de gestão de dispositivos mostra a versão atualizada do sistema operativo, e o serviço de gestão de dispositivos pode então avançar com o registo no serviço de gestão de dispositivos. Se a atualização falhar, é mostrada mensagem de erro ao utilizador e o painel de gestão remota aparece novamente no Assistente de Configuração.
O esquema de resposta
está definido na tabela abaixo.
Chave | Tipo | Necessário | Description (Descrição) | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Cadeia | Sim | Deve ser definido com | ||||||||
| Cadeia | Não | A descrição do erro. Usado apenas para efeitos de início de sessão. | ||||||||
| Cadeia | Não | A descrição do erro adequada para apresentação ao utilizador. | ||||||||
| Dicionário | Sim | Dados adicionados a especificar a atualização de software. |
O esquema de dicionário de detalhes
está definido aqui.
Chave | Tipo | Necessário | Description (Descrição) | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Cadeia | Sim | A versão do sistema operativo para a qual o dispositivo tem de ser atualizado. | ||||||||
| Cadeia | Não | A versão da build para a qual o dispositivo tem de ser atualizado. | ||||||||
| Dicionário | Não | O dispositivo regista-se no programa beta, permitindo atualizações de software obrigatórias para versões do sistema operativo do programa beta. O dispositivo permanece no programa beta após a conclusão da atualização obrigatória do software. |
Se especificar apenas OSVersion
, um dispositivo descarrega e instala automaticamente quaisquer respostas de segurança rápidas disponíveis para esta versão. Se for necessária uma build ou versão suplementar específica, um serviço de gestão de dispositivos também pode especificar opcionalmente a chave BuildVersion
. Por exemplo, para exigir que um dispositivo execute o iOS 16.5.1(a) antes do registo (apesar do iOS 16.5.1(c) já estar disponível) um serviço de gestão de dispositivos tem de definir OSVersion
como iOS 16.5.1
e BuildVersion
como 20F770750b
.
Importante: Antes do macOS 15, apenas os lançamentos das listas PublicAssetSets
e PublicRapidSecurityResponses
podiam ser especificados. No macOS 15, os recursos de AssetSets
também podem ser usados.
Definições de gestão de dispositivos para atualizações de software
A declaração com.apple.configuration.softwareupdate.settings
(disponível no iOS 18, iPadOS 18, macOS 15 e tvOS 18.4 ou posterior) consiste em dicionários que podem ser usados para configurar vários aspetos do comportamento das atualizações do software.
Depois de um serviço de gestão de dispositivos distribuir diferentes chaves em várias declarações, um dispositivo combina as definições de todas as declarações de definições de atualização de software ativas. Se várias declarações configurarem a mesma chave, o comportamento da combinação depende da chave individual, o que está descrito nas tabelas abaixo.
Configurar atualizações de software automáticas com gestão de dispositivos
A declaração com.apple.configuration.softwareupdate.settings
oferece um dicionário para definir o comportamento das atualizações automáticas de software em dispositivos iPhone, iPad, Apple TV e Mac supervisionados. Encontrará informação adicional em Teclas de dicionário AutomaticActions.
Como um serviço de gestão de dispositivos lida com as respostas de segurança rápidas
As respostas rápidas de segurança aplicam-se sempre à atualização mais recente de um sistema operativo, que se torna a versão de base da resposta rápida de segurança. Por exemplo, se um iPhone tiver o sistema operativo iOS 17.2 instalado, a atualização suplementar 17.2 (a) é aplicada (se houver uma disponível). No iOS 18, iPadOS 18 e macOS 15, foram disponibilizadas atualizações combinadas, que permitem que uma atualização de software inclua quaisquer respostas de segurança rápidas disponíveis.
Em versões anteriores ao iOS 18, iPadOS 18 e macOS 15, um serviço de gestão de dispositivos pode ter de acionar duas atualizações de software para garantir que uma versão suplementar específica está presente: Primeiro, é necessário atualizar o dispositivo para a versão base da atualização suplementar, se o dispositivo ainda não estiver na versão base (por exemplo, do iOS 17.1 para o iOS 17.2). Depois, é necessário atualizar o dispositivo a versão base para a versão suplementar (por exemplo, do iOS 17.2 para o iOS 17.2 (a)).
No iOS 18, iPadOS 18 e macOS 15, um serviço de gestão de dispositivos pode especificar:
A versão do sistema operativo (que instala automaticamente as respostas de segurança rápidas disponíveis).
A versão de compilação suplementar (que faz com que o dispositivo execute uma atualização necessária para a versão base automaticamente como parte do processo)
Estas duas abordagens aplicam-se à configuração da aplicação da atualizações de software e à versão mínima obrigatória durante o registo automático de dispositivos.
A declaração com.apple.configuration.softwareupdate.settings
também pode ser usada para configurar o comportamento da resposta de segurança rápida em dispositivos iPhone, iPad e Mac supervisionados. Encontrará informação adicional em Chaves do dicionário RapidSecurityResponse para iOS, iPadOS e macOS..
Adiar uma atualização de software com gestão de dispositivos
Para adiar uma atualização de software entre 1 a 90 dias, é necessário usar a declaração com.apple.configuration.softwareupdate.settings
nos dispositivos iPhone, iPad e Mac supervisionados.
Um adiamento configurado define o número de dias antes de uma organização oferecer um lançamento aos utilizadores depois de ter sido disponibilizado publicamente. Independentemente de um adiamento configurado, um serviço de gestão de dispositivos ainda pode impor uma atualização principal ou secundária de software ou resposta de segurança rápida específica em dispositivos geridos. Encontrará informação adicional em Chaves de dicionário de adiamentos para iOS, iPadOS e tvOS e Chaves de dicionário de adiamentos para macOS.
Nota: O adiamento das atualizações de software também adia as respostas de segurança rápida que estão dependentes dessa versão.
Aplicar atualizações de software com gestão de dispositivos
Para aplicar uma atualização de software por um determinado tempo em dispositivos registados usando o registo de dispositivos e o registo automático de dispositivos, os serviço de gestão de dispositivos podem aplicar a declaração com.apple.configuration.softwareupdate.enforcement.specific
.
Se uma configuração for aplicada a um dispositivo que especifica um sistema operativo ou uma versão da build que seja igual ou anterior à versão de dispositivo atual, o dispositivo devolve um erro no relatório de estado.
Se houver várias configurações com um sistema operativo ou uma versão de compilação mais recente do que a versão atual do dispositivo, a configuração com a data e a hora de destino mais antigas será processada primeiro, e as outras permanecerão na fila de espera. Quando o dispositivo é atualizado para uma nova versão, o conjunto de configurações é reprocessado para determinar qual será o próximo a ser processado. Como parte deste processo, o dispositivo ignora quaisquer configurações existentes que especificam uma versão que é anterior ou igual à atual.
O sistema operativo instala automaticamente quaisquer respostas de segurança rápidas disponíveis se um serviço de gestão de dispositivos definir apenas o TargetOSVersion
. Para direcionar uma versão específica ou uma resposta de segurança rápida, um serviço de gestão de dispositivos pode usar a chave TargetBuildVersion
para além de especificar a versão, incluindo o identificador de versão suplementar.
Encontrará mais informação em Aplicar chaves de dicionário de atualizações de software.
Notificações
A chave Notificações altera o comportamento de notificação predefinida para mostrar apenas uma notificação uma hora antes da atualização obrigatória e da contagem decrescente para o reinício. Encontrará informação adicional em Chave de notificações.
Usar o token bootstrap para computadores Mac com Apple Silicon
Para autorizar uma atualização de software aplicada num computador Mac com Apple Silicon supervisionado, um serviço de gestão de dispositivos pode solicitar e depositar um token boostrap. Isto permite uma experiência de atualização de software completamente integrada e evita a necessidade de interação do utilizador como parte do processo. Quando necessário, o dispositivo usa um GetBootstrapTokenRequest
para obter o token bootstrap do serviço de gestão de dispositivos.
No primeiro passo, o serviço de gestão de dispositivos usa o comando SecurityInfo
para determinar se o dispositivo é compatível com um token bootstrap. Se a resposta incluir BootstrapTokenRequiredForSoftwareUpdate
definido como verdadeiro
, o dispositivo pode usar um token bootstrap para autorizar uma atualização de software.
Para criar um token bootstrap, o serviço de gestão de dispositivos tem de adicionar com.apple.mdm.bootstraptoken
à sequência ServerCapabilities
no perfil de gestão de dispositivos. Encontrará mais informação em Device Management Profile (em inglês) no site da Apple para Programadores.
Depois de o dispositivo receber o token bootstrap, cria um token bootstrap da próxima vez que um utilizador com token seguro iniciar sessão. Em seguida, comunica com o ponto terminal de verificação do serviço de gestão de dispositivos e guarda o token usando SetBootstrapTokenRequest
. Encontrará mais informação em Set Bootstrap Token (em inglês) no site da Apple para Programadores.
Para obter a especificação de esquema mais atual, consulte o repositório GitHub de gestão de dispositivos Apple.