Como Parar de Abrir o App Store Connect Web e Automatizar Tudo pelo Terminal
Qualquer pessoa que já implantou um app na App Store conhece essa dor. A interface web do App Store Connect adora travar, exigir reautenticação no momento mais inconveniente e forçá-lo a clicar com o mouse para algo tão simples quanto adicionar um build ao TestFlight.
Recentemente, encontrei o utilitário asc (App Store Connect CLI). É uma ferramenta de console baseada em Go criada especificamente para remover o navegador das rotinas de publicação de apps iOS e macOS.
O que é o asc
O projeto é escrito em Go, distribuído como um único binário e funciona no macOS, Linux e Windows. A principal vantagem é que a ferramenta foi projetada desde o início sem prompts interativos. Não precisa de confirmação com a tecla Enter, a menos que você solicite especificamente. Isso a torna conveniente para scripts e pipelines em CI/CD.
O formato de saída se adapta ao ambiente. Se você executar comandos no terminal, o utilitário desenha tabelas. Se o resultado for direcionado para um pipe ou arquivo, ele gera JSON limpo.
Principais funcionalidades na prática
O utilitário cobre quase todas as tarefas que você costumava ter que fazer no site da Apple.
Enviando builds e trabalhando com o TestFlight
O envio de um arquivo .ipa ou .pkg é feito com um único comando:
asc builds upload --app "123456789" --ipa "/path/to/MyApp.ipa"
Depois disso, você pode anexar imediatamente o build aos testadores. Para equipes que fazem build para macOS, há suporte para uma cadeia com o upload do .pkg e a adição da versão ao grupo de testadores internos:
asc builds upload --app "123456789" --pkg "./build/MyMacApp.pkg" --version "1.2.3" --build-number "42" --wait --output json
asc builds add-groups --app "123456789" --build-number "42" --version "1.2.3" --platform MAC_OS --group "Internal Testers"
Você pode ler logs de crash e feedback de usuários do TestFlight diretamente do console.
Gerenciando metadados e ASO
Se um app é localizado em vários idiomas, atualizar descrições pela interface web se torna tedioso. O utilitário exporta as localizações para um diretório local, permite que você as edite e depois aplica as alterações de volta:
asc metadata init --dir "./metadata" --version "1.2.3" --locale "en-US"
asc metadata apply --app "123456789" --version "1.2.3" --dir "./metadata" --dry-run
Para otimização de ASO, existe o comando asc metadata keywords audit. Ele verifica palavras-chave duplicadas, repetições entre locales, conflitos com o nome do app e excessos de bytes.
Trabalhando com capturas de tela
Capturas de tela podem ser enviadas em lote de pastas, especificando o tipo de dispositivo necessário:
asc screenshots upload --version-localization "LOCALIZATION_ID" --path "./screenshots/en-US" --device-type "IPHONE_65" --replace
Autorização sem dor em CI/CD
Em um ambiente local, o utilitário pode armazenar chaves no Keychain do sistema. Mas em servidores CI (GitHub Actions, GitLab CI, Bitrise), o Keychain geralmente não está disponível. Os desenvolvedores forneceram a flag --bypass-keychain e o carregamento de configuração de um arquivo ou variáveis de ambiente:
asc auth login \
--bypass-keychain \
--name "MyCIKey" \
--key-id "ABC123" \
--issuer-id "DEF456" \
--private-key /path/to/AuthKey.p8
Você pode verificar se suas chaves são válidas antes de iniciar um build longo com um comando de validação especial:
asc auth doctor
Vale a pena adotar
Se você lança um app uma vez por ano, os painéis web da Apple podem ser suficientes. Mas para lançamentos regulares, trabalhando com múltiplas localizações ou construindo CI/CD transparente, o utilitário economiza horas de trabalho.
O projeto é ativamente desenvolvido, recebe feedback positivo de desenvolvedores mobile e se integra facilmente em scripts shell existentes.
Projetos relacionados