>_ DevTrendspt

Idioma

Início

Linguagens

Seções

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarcados Segurança
Go

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.

asc -- App Store Connect CLI

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