
Conhecer as fases da aplicação de atualizações de software Apple
A aplicação das atualizações de software com gestão de dispositivos envolve cinco componentes principais:
O serviço de gestão de dispositivos
O dispositivo
O utilizador
O serviço de procura de software Apple.
O catálogo de atualização de software da Apple
Fase 1
O serviço de gestão de dispositivos monitoriza regularmente o serviço de procura de software Apple em busca de novas versões. Se detetar uma, a solução usa a chave SupportedDevices
do catálogo e compara-a com a respetiva lista de dispositivos geridos para determinar a que dispositivos a versão é aplicável.
O serviço de gestão de dispositivos também deve assinar os relatórios de estado softwareupdate.*
e device.operating-system.*
para obter atualizações automaticamente quando algum desses valores é alterado.

Fase 2
O serviço de gestão de dispositivos cria uma declaração com.apple.configuration.softwareupdate.enforcement.specific
com a versão detetada e define TargetLocalDateTime
e, opcionalmente, DetailsURL
de acordo com os requisitos organizacionais. Depois, o serviço de gestão de dispositivos envia uma notificação por push ao dispositivo para acionar a sincronização das declarações. Encontrará mais informação em Integrating Declarative Management (em inglês) no site da Apple para Programadores.

Fase 3
Depois de a declaração ficar ativa num dispositivo, o sistema operativo acede ao catálogo de atualizações de software Apple para obter o URL de descarga e começar a descarregar a atualização se esta cumprir os requisitos. O dispositivo apresenta uma notificação ao utilizador e devolve o seguinte ao serviço de gestão de dispositivos:
1. Um valor softwareupdate.install-state
de espera, que indica que o processo para pedir a atualização foi iniciado.
2. Um valor softwareupdate.install-state
de descarga, que indica que a atualização está a ser descarregada pelo dispositivo.
Se um serviço de cache de conteúdo estiver disponível para o dispositivo, este tenta descarregar a atualização de software da cache de conteúdo.
Depois de o dispositivo descarregar a atualização com êxito, esta é preparada para instalação. Após a conclusão deste processo, o sistema operativo envia um valor softwareupdate.install-state
de preparado
para o serviço de gestão de dispositivos.

Fase 4
O dispositivo entra no período de notificação. Consoante o momento em que a instalação ocorre, esta notificação pode apresentar texto e opções diferentes.

Fase 5
Se o utilizador não instalar a atualização antes do prazo da atualização obrigatória, o dispositivo inicia a instalação e envia um valorsoftwareupdate.install-state
de instalação
para o serviço de gestão de dispositivos. Antes de iniciar a instalação, um Mac com Apple Silicon contacta o serviço de gestão de dispositivos para obter o token bootstrap (se houver um disponível).
Se a atualização for bem-sucedida, o dispositivo é reiniciado. Se a atualização falhar, softwareupdate.install-state
com o valor de failed
é enviado. De qualquer forma, o dispositivo envia um relatório de estado softwareupdate.failure-reason
. Se a atualização for bem-sucedida, a chave da conta recebe o valor 0
.

Fase 6
O dispositivo envia as seguintes informações para o serviço de gestão de dispositivos. Consoante a atualização, alguns objetos podem não ter valores devolvidos.
StatusDeviceOperatingSystemVersion: um relatório de estado da versão do sistema operativo.
StatusDeviceOperatingSystemBuildVersion: um relatório de estado do identificador da build do software do dispositivo.
StatusDeviceOperatingSystemSupplementalBuildVersion: um relatório de estado da versão do sistema operativo do dispositivo e o identificador de build da resposta rápida de segurança.
StatusDeviceOperatingSystemSupplementalExtraVersion: um relatório de estado do identificador de resposta rápida de segurança do sistema operativo do dispositivo.

Fase 7
O serviço de gestão de dispositivos cancela a atribuição da declaração do dispositivo e envia-lhe uma notificação por push para iniciar a sincronização. Após a sincronização, o dispositivo remove a declaração.
