← blog

Registrando um Mac mini usado que chegou duas versões do macOS atrás

20 de setembro de 2026 · 7 min de leitura

A máquina estava boa. Dezesseis gigabytes, um Apple M4, apagada e limpa. Ela também estava no macOS 15.6.1, e o Xcode que entregamos a todo cliente não abre abaixo do 26.2. Veja como descobrir isso, e as partes da atualização que não são óbvias. No final está a lista que agora seguimos antes de pagar por um Mac usado.

Leia o mínimo no próprio Xcode

Não adivinhe pelas notas de versão. O Xcode declara o piso dele na própria property list.

$ /usr/libexec/PlistBuddy -c "Print :LSMinimumSystemVersion" \
    /Applications/Xcode.app/Contents/Info.plist
26.2

Uma máquina abaixo disso é registrada sem erro e depois falha no primeiro build do cliente. Nosso script de registro agora verifica isso antes de qualquer outra coisa, e recusa mostrando o comando exato para baixar uma versão mais nova.

A Atualização de Software só mostra a versão principal mais nova

A partir do macOS 15, os Ajustes do Sistema ofereciam o macOS 27 e nada mais. As versões principais antigas ainda existem. Você precisa pedir por elas pelo nome, na linha de comando.

$ softwareupdate --list-full-installers
* Title: macOS 27 Golden Gate, Version: 27.0, Build: 26A428
* Title: macOS Tahoe,          Version: 26.7, Build: 25G229
* Title: macOS Tahoe,          Version: 26.6.2 ...
* Title: macOS Sequoia,        Version: 15.8 ...

$ softwareupdate --fetch-full-installer --full-installer-version 26.7

A lista depende do modelo, então rode na própria máquina. Na nossa só o 27 aparecia, então ficamos com o 27 de propósito, e não por padrão. Essa diferença importa em uma frota.

Antes de colocar uma nova versão principal em uma máquina da frota

Todas as fórmulas do Homebrew que instalamos já tinham bottle para a nova versão. Foi por isso que o registro levou o tempo de sempre, e não uma tarde compilando Ruby.

O que o registro verifica antes de a máquina ir à venda

Passar na verificação de versão é onde o trabalho começa, não onde termina. Antes de uma máquina ser oferecida a alguém, ela precisa provar quatro coisas, e cada uma é medida, não suposta.

  • Uma área de trabalho de verdade. Um cliente VNC puxa um framebuffer e conta as cores. Mais de cem mil cores diferentes é uma área de trabalho. Duas é uma tela preta.
  • Uma compilação de verdade. O xcrun swiftc compila e roda um binário como a conta do cliente.
  • Uma sessão logada. O who mostra uma linha console para a conta do cliente.
  • Telemetria chegando. O hub vê a máquina, a versão do macOS e a sessão dela no painel da frota.

A nossa passou nas quatro no macOS 27. É isso, e não o número da versão, que explica por que ela está à venda.

O susto que não era bug

As duas primeiras inicializações depois do registro não fizeram login automático. Em uma versão principal novinha do macOS, isso parece uma regressão, e quase registramos como uma. Não era.

A primeira inicialização estava indexando um Xcode de 3.8 GB recém copiado, com load average acima de 160. O login não terminou a tempo, e o macOS gravou lastLoginPanic nas preferências do loginwindow. Essa flag faz ele pular o login automático também na próxima inicialização. Limpar a trava e reiniciar com a máquina já calma funcionou, com a mesma senha e os mesmos scripts, tanto com 8 quanto com 32 caracteres.

sudo defaults delete /Library/Preferences/com.apple.loginwindow lastLoginPanic
sudo shutdown -r now

O que provou que não era o sistema novo foi um teste de controle. Rodamos o mesmo comando de diagnóstico em uma máquina saudável, uma versão principal atrás, e recebemos o mesmo erro. Essa história, e outras quatro parecidas, está em verificações que não podem falhar.

O que verificar ao comprar um mini usado

Nada disso é exclusivo de CI. É o que você deve verificar antes de entregar dinheiro por qualquer Mac usado. Nós só temos mais motivos do que a maioria para acertar de primeira, porque a máquina vai para um cliente em menos de uma hora.

Perguntas

Como instalar uma versão do macOS que a Atualização de Software não mostra?
Rode softwareupdate --list-full-installers para ver todas as versões que a Apple oferece para aquele modelo, depois softwareupdate --fetch-full-installer --full-installer-version 26.7 com a versão que você quer. O instalador vai para /Applications.
O Xcode 26.6 roda no macOS 27?
Sim. O LSMinimumSystemVersion no Info.plist do Xcode é 26.2, e isso é um piso, não uma versão fixa. Ele abre e faz builds no 27.
Devo simplesmente instalar o macOS mais novo em uma máquina de CI?
Só de propósito. Uma unidade em uma versão principal diferente do resto da frota quebra a reprodutibilidade para clientes de CI. Confira antes se existem bottles do Homebrew para a nova versão, ou toda instalação vai compilar a partir do código fonte.
O que verificar antes de comprar um Mac mini usado?
Número de série e modelo, RAM, o tamanho real do disco, a versão do macOS, se o FileVault e o Bloqueio de Ativação estão desligados, se o Buscar está desligado e se não há registro em MDM. O nosso foi vendido como 500 GB e tinha 256.

Faça suas próprias contas na calculadora ou alugue um runner.