
Use o gerenciamento de dispositivos para implantar atualizações de software em dispositivos Apple
O gerenciamento declarativo de dispositivos é o futuro do gerenciamento de dispositivos da Apple. Ele permite que um dispositivo aplique ajustes de forma assíncrona e relate o estado ao serviço de gerenciamento de dispositivos sem precisar de consultas constantes. Isso é ideal para desempenho e escalabilidade e também permite uma abordagem moderna para gerenciar atualizações de software. O gerenciamento declarativo de dispositivos fornece relatórios de status proativos de dispositivos conforme valores e configurações mudam. Dessa forma, o serviço de gerenciamento de dispositivos sempre tem uma visão atualizada dos dispositivos sem precisar 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 gerenciamento de dispositivos declara o estado desejado da versão do sistema operacional e delega ao próprio dispositivo a tarefa de obter esse estado. Isso possibilita um processo de atualização de software gerenciado mais resiliente e maior transparência para o usuário.
A importância de utilizar as declarações de atualização de software
Os serviços de gerenciamento de dispositivos devem usar 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. Eles podem funcionar junto com declarações de atualização de software com as seguintes alterações:
Os atrasos definidos por uma declaração têm precedência em relação aos atrasos configurados por uma restrição.
Os ajustes da atualização automática de software no macOS aplicados por uma declaração têm precedência sobre os ajustes de atualização automática fornecidas em um perfil de configuração.
Quando houver uma atualização de software pendente que o sistema operacional configura usando o gerenciamento declarativo de dispositivos, o cliente não poderá mais processar alguns comandos de gerenciamento de dispositivos e retornará erros indicando que há uma declaração ativa no dispositivo, conforme mostrado na tabela a seguir:
Comando de gerenciamento de dispositivos | Resultado | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| Limitado: Em computadores Mac, atualizações baseadas no sistema operacional que não são gerenciadas podem aparecer na resposta do comando, por exemplo, no Xcode ou em ferramentas de linha de comando. | ||||||||||
| O dispositivo retorna um erro | ||||||||||
| O dispositivo retorna um vetor de estado vazio. |
Uso do Serviço de Pesquisa de Software da Apple
O Serviço de Pesquisa de Software da Apple (disponível no site https://gdmf.apple.com/v2/pmv) é o recurso oficial para obtenção de uma lista das atualizações principais, secundárias e Proteções Rápidas disponibilizadas publicamente. Ele permite que um serviço de gerenciamento de dispositivos consulte versões assim que publicadas pela Apple e calcule a aplicabilidade para cada modelo de hardware de maneira pontual e precisa.
A resposta JSON contém três listas de lançamentos de software disponíveis:
PublicAssetSets: esta lista contém os lançamentos mais recentes disponíveis para o público em geral para tentativas de atualização de versão secundária ou principal.
AssetSets: esta lista é um subconjunto de
PublicAssetSets
e contém todas as versões disponíveis que os serviços de gerenciamento de dispositivos podem enviar aos dispositivos.PublicRapidSecurityResponses: essa lista contém as versões de Proteções Rápidas disponíveis atualmente para dispositivos Apple.
Cada elemento da lista contém ProductVersion
(o número de versão de produto) e Build
(compilação) do sistema operacional, a PostingDate
(data de publicação) quando a versão foi publicada, a ExpirationDate
(data de validade) e uma lista de SupportedDevices
(dispositivos compatíveis) com o lançamento em questão. A lista de dispositivos corresponde aos valores de ProductName
do dispositivo, que são retornados na resposta de DeviceInformation
, o pedido de autenticação original (Authenticate
) ou em MachineInfo
quando o dispositivo tenta se registrar.
Geralmente, a data de validade é definida para 180 dias depois da data de publicação e define a data em que a assinatura da atualização expira. Não é possível instalar uma atualização expirada em dispositivos. Quando atualizações subsequentes são disponibilizadas, a data de validade das atualizações anteriores pode ser atualizada. Se uma data de validade não é fornecida, isso significa que a atualização ainda não expirou. Uma atualização expira apenas quando sua data de validade é uma data passada.
Os materiais são agrupados por plataforma do sistema operacional com 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ão do produto para determinar quais versões são posteriores à versão do sistema operacional atual do dispositivo e que são aplicáveis ao dispositivo específico. Em seguida, forneça essa lista de versões ao administrador do serviço de gerenciamento de dispositivos como possíveis candidatas para atualização do sistema operacional.
Envio de relatório de estado para o serviço de gerenciamento de dispositivos
Para receber atualizações de itens de estado conforme eles mudam, o servidor precisa enviar uma declaração ManagementStatusSubscriptions
ao dispositivo para assinar cada relatório de estado. O dispositivo envia então um StatusReport
ao serviço de gerenciamento de dispositivos quando uma declaração ManagementStatusSubscriptions
se tornar ativa, se o status de um item assinado mudar, e a cada 24 horas.
Para fins de monitoramento de versões do sistema operacional e estado de atualização de software, o serviço de gerenciamento de dispositivos pode querer assinar os seguintes relatórios de estado:
Relatório de estado | Description |
---|---|
| A versão de compilação do sistema operacional no dispositivo (por exemplo, 21E219). |
| A versão do sistema operacional em uso no dispositivo (por exemplo, 17.4). |
| As versões de compilação do sistema operacional e da Proteção Rápida em uso no dispositivo, por exemplo (20A123a ou 20F75c). |
| A versão da Proteção Rápida do sistema operacional em uso no dispositivo (por exemplo, a). |
| Dicionário que contém as versões de compilação e do sistema operacional da atualização de software 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 de 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, a marca temporal da última falha e o motivo da falha. |
| O nome do programa beta registrado do dispositivo ou uma string vazia se não houver nenhum programa beta registrado. |
Além de outros relatórios, os serviços de gerenciamento de dispositivos também podem querer disponibilizar softwareupdate.install-reason
aos administradores para fins de suporte e para fornecer informações adicionais sobre como uma atualização ocorre. Você pode usar este dicionário para determinar se um usuário inicia a atualização, se ela acontece automaticamente ou se uma declaração de execução de atualização de software a inicia.
Solicitação de uma versão mínima específica do software durante o registro
Se um dispositivo for compatível com esse recurso, ele retornará uma chave MDM_CAN_REQUEST_SOFTWARE_UPDATE
, definida como Verdadeira, nos dados MachineInfo
que envia na solicitação HTTP POST
inicial para o serviço de gerenciamento de dispositivos quando o dispositivo detectar uma configuração de gerenciamento no Assistente de Configuração. Para obter mais informações, consulte o arquivo MachineInfo yaml no repositório GitHub do gerenciamento de dispositivos Apple.
Além disso, os dispositivos fornecem os seguintes campos nos dados MachineInfo
(todas as strings) :
Chave | Versões mínimas compatíveis de sistemas operacionais | Description | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
VERSION | iOS 17 iPadOS 17 macOS 14 | A versão de compilação instalada no dispositivo (por exemplo, 7A182). | |||||||||
OS_VERSION | iOS 17 iPadOS 17 macOS 14 | A versão do sistema operacional instalado no dispositivo (por exemplo, 17.0). | |||||||||
SUPPLEMENTAL_BUILD_VERSION | iOS 17 iPadOS 17 macOS 14 | A versão da Proteção Rápida do dispositivo (se houver uma disponível). | |||||||||
SUPPLEMENTAL_OS_VERSION_EXTRA | iOS 17 iPadOS 17 macOS 14 | A versão extra da Proteção 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 operacional no Serviço de Pesquisa de Software da Apple. |
Com base nas informações fornecidas, o serviço de gerenciamento de dispositivos pode decidir se deve forçar a atualização do dispositivo.
Se o serviço de gerenciamento de dispositivos decidir não forçar a atualização de software, ele simplesmente retorna o perfil de registro em resposta à solicitação
HTTP POST
, como normalmente faria para permitir que o registro prossiga.Se o serviço de gerenciamento de dispositivos optar por impor uma atualização de software, ele deverá retornar uma resposta
HTTP
com o código de estado 403 e incluir um objeto JSON ou XML no corpo da resposta (o cabeçalho de respostaHTTP Content-Type
precisa ser definido comoapplication/json
ouapplication/xml
, respectivamente).
Após receber essa resposta de erro, o dispositivo tenta atualizar para a versão especificada. Se a atualização for bem-sucedida, o dispositivo será reiniciado e o usuário precisará passar pelo Assistente de Configuração novamente. A solicitação MachineInfo POST
seguinte do dispositivo para o serviço de gerenciamento de dispositivos mostrará a versão atualizada do sistema operacional e o serviço poderá prosseguir com o registro. Se a atualização falhar, o usuário recebe uma mensagem de erro e o painel do Gerenciamento Remoto aparece novamente no Assistente de Configuração.
O esquema de resposta
está definido na tabela abaixo.
Chave | Tipo | Obrigatório | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| String | Sim | Deve ser enviado para | ||||||||
| String | Não | A descrição do erro. Usada apenas para fins de registro. | ||||||||
| String | Não | A descrição do erro adequada para exibição ao usuário. | ||||||||
| Dicionário | Sim | Dados adicionais especificando a atualização do software. |
O esquema de dicionário de detalhes
está definido aqui.
Chave | Tipo | Obrigatório | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
| String | Sim | A versão do sistema operacional para a qual o dispositivo precisa ser atualizado. | ||||||||
| String | Não | A versão da compilação para a qual o dispositivo precisa ser atualizado. | ||||||||
| Dicionário | Não | O dispositivo se registra no programa beta, permitindo atualizações de software obrigatórias para versões do sistema operacional do programa beta. O dispositivo permanece no programa beta após a conclusão da atualização obrigatória do software. |
Se você especificar apenas OSVersion
, um dispositivo baixará e instalará automaticamente quaisquer Proteções Rápidas disponíveis para esta versão. Caso seja necessária uma compilação ou versão suplementar específica, o serviço de gerenciamento de dispositivos também poderá especificar a chave BuildVersion
opcionalmente. Por exemplo, para exigir que um dispositivo execute o iOS 16.5.1(a) antes do seu registro — apesar de iOS 16.5.1(c) já estar disponível — o serviço de gerenciamento de dispositivos precisa definir OSVersion
como iOS 16.5.1
e BuildVersion
como 20F770750b
.
Importante: Antes do macOS 15, apenas versões das listas PublicAssetSets
e PublicRapidSecurityResponses
podiam ser especificadas. No macOS 15, os recursos de AssetSets
também podem ser usados.
Ajustes de gerenciamento 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 aspectos do comportamento de atualização do software.
Depois que um serviço de gerenciamento de dispositivos distribui chaves diferentes em várias declarações, um dispositivo mescla os ajustes de todas as declarações de ajustes de atualização de software ativas. Caso múltiplas declarações configurem a mesma chave, o comportamento da mesclagem depende da chave individual e é descrito nas tabelas abaixo.
Configuração de atualizações automáticas de software com gerenciamento 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. Para obter mais informações, consulte Chaves do dicionário AutomaticActions.
Como um serviço de gerenciamento de dispositivos lida com as Proteções Rápidas
As Proteções Rápidas sempre se aplicam à atualização mais recente de um sistema operacional, que se torna a versão de base da Proteção Rápida. Por exemplo, se um iPhone tiver o sistema operacional iOS 17.2 instalado, então 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 qualquer Proteção Rápida.
Em versões anteriores ao iOS 18, iPadOS 18 e ao macOS 15, o serviço de gerenciamento de dispositivos pode precisar acionar duas atualizações de software para garantir que uma versão suplementar específica esteja presente. Primeiro, ele deve atualizar o dispositivo para a versão base da atualização suplementar, se o dispositivo ainda não estiver nela (por exemplo, de iOS 17.1 para iOS 17.2). Depois, ele deve atualizar a versão base para a versão suplementar (por exemplo, de iOS 17.2 para iOS 17.2 (a)).
No iOS 18, iPadOS 18 e macOS 15, um serviço de gerenciamento de dispositivos pode especificar:
A versão do sistema operacional (que instala automaticamente as Proteções 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)
Essas duas abordagens se aplicam à configuração da obrigatoriedade da atualização de software e à versão mínima obrigatória durante o Registro de Dispositivo Automatizado.
A declaração com.apple.configuration.softwareupdate.settings
também pode ser usada para configurar o comportamento da Proteção Rápida em dispositivos iPhone, iPad e Mac supervisionados. Para obter mais informações, consulte Chaves do dicionário RapidSecurityResponse para iOS, iPadOS e macOS.
Adiamento de uma atualização com gerenciamento de dispositivos
O adiamento de uma atualização principal ou secundária de software de 1 para 90 dias é feito usando a declaração com.apple.configuration.softwareupdate.settings
em dispositivos iPhone, iPad e Mac supervisionados.
Um adiamento configurado define quantos dias uma organização aguarda para disponibilizar uma versão aos usuários após seu lançamento público. Independentemente de um adiamento configurado, um serviço de gerenciamento de dispositivos ainda pode impor uma atualização principal ou secundária de software ou Proteção Rápida específica em dispositivos gerenciados. Para obter mais informações, consulte Chaves do dicionário Deferrals para iOS, iPadOS e tvOS e Chaves do dicionário Deferrals para macOS.
Nota: adiar atualizações de software também adia qualquer Proteção Rápida que dependa da nova versão.
Atualizações de software obrigatórias com gerenciamento de dispositivos
Para impor uma atualização de software em um determinado momento em dispositivos registrados usando Registro de Dispositivo ou Registro de Dispositivo Automatizado, os serviços de gerenciamento de dispositivos podem a aplicar a declaração com.apple.configuration.softwareupdate.enforcement.specific
.
Se uma configuração especificar um sistema operacional ou uma versão de compilação que seja igual ou mais antiga que a versão atual do dispositivo, o dispositivo retornará um erro no relatório de estado.
Se houver várias configurações com um sistema operacional 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. Quando o dispositivo é atualizado com uma nova versão, o conjunto de configurações é reprocessado para determinar qual será a próxima a ser processada. Como parte desse processo, o dispositivo ignora quaisquer configurações existentes que especificam uma versão mais antiga ou igual à atual.
O sistema operacional instala automaticamente todas as Proteções Rápidas disponíveis se um serviço de gerenciamento de dispositivos definir apenas TargetOSVersion
. Para direcionar uma versão específica ou uma Proteção Rápida, um serviço de gerenciamento de dispositivos pode usar a chave TargetBuildVersion
além de especificar a compilação, incluindo o identificador da versão suplementar.
Para obter mais informações, consulte Chaves do dicionário de atualizações de software obrigatórias.
Notifications
A chave Notificações altera o comportamento de notificação padrão para mostrar apenas uma notificação 1 hora antes da atualização obrigatória e da contagem regressiva de reinicialização. Para obter mais informações, consulte Chave Notificações.
Uso do bootstrap token em computadores Mac com Apple Silicon
Para autorizar uma atualização de software obrigatória em um computador Mac supervisionado com Apple Silicon, um serviço de gerenciamento de dispositivos pode solicitar e guardar um bootstrap token. Isso permite uma experiência de atualização de software completamente integrada e evita a necessidade de interação do usuário como parte do processo. Quando necessário, o dispositivo usa GetBootstrapTokenRequest
para recuperar o bootstrap token do serviço de gerenciamento de dispositivos.
Na primeira etapa, o serviço de gerenciamento de dispositivos usa o comando SecurityInfo
para determinar se o dispositivo é compatível com um bootstrap token. Se a resposta incluir BootstrapTokenRequiredForSoftwareUpdate
definido como verdadeiro
, o dispositivo pode usar um bootstrap token para autorizar uma atualização de software.
Para criar um bootstrap token, o serviço de gerenciamento de dispositivos precisa adicionar com.apple.mdm.bootstraptoken
ao vetor ServerCapabilities
no perfil de gerenciamento de dispositivos. Para obter mais informações, consulte o Device Management Profile (em inglês) no site Apple Developer.
Depois que o dispositivo receber o bootstrap token, ele cria um bootstrap token na próxima vez que um usuário com token seguro ativado iniciar sessão. Em seguida, ele se comunica com o ponto final de verificação do serviço de gerenciamento de dispositivos e usa SetBootstrapTokenRequest
para guardar o token. Para obter mais informações, consulte Set Bootstrap Token (em inglês) no site Apple Developer.
Para obter a especificação de esquema mais atual, consulte o repositório GitHub do gerenciamento de dispositivos Apple.