Receber códigos SMS (OTP) em CI e QA com um iPhone
Por Fwrd · · Atualizado em
Para levar os códigos SMS de uso único para o CI ou para a automação de QA, coloque o chip que recebe os códigos num iPhone da equipe e deixe uma automação de Mensagem no Atalhos entregar cada mensagem com código ao Fwrd, que a posta no seu webhook HTTPS em JSON. O seu job de CI então lê o código mais recente desse endpoint e o digita na tela de login.
O que você precisa: um iPhone com iOS 26 ou posterior e o chip cujo número recebe os códigos, o app Atalhos (ele já vem no celular), o Fwrd e um endereço HTTPS público que o seu CI consiga ler, como uma rota de staging ou um fluxo do n8n. O Fwrd recusa endereços IP e nomes terminados em .local ou .internal e não envia cabeçalho de login, então ponha um segredo longo no endereço.
Por que é difícil automatizar códigos SMS?
Os códigos SMS travam o CI porque chegam a um celular, não ao seu runner, até que algo leve cada mensagem para um lugar que o seu pipeline consiga ler.
A maioria das equipes que escrevem essas verificações só tem o próprio celular para receber o código. Um iPhone da equipe com o Fwrd transforma esse celular em algo que o seu pipeline consegue ler.
Quando um iPhone da equipe combina?
Combina quando o código precisa chegar a um número específico de operadora: um serviço de terceiros em que você faz login, uma conta de staging já ligada ao celular da empresa ou um fluxo que trata números de forma diferente conforme o tipo. A documentação do Lookup da Twilio (consultada em 17 de outubro de 2026) mostra que os apps conseguem distinguir um número móvel de um número VoIP não fixo, que ela descreve como um número virtual obtido on-line. Um chip num iPhone da equipe é um número real de operadora, então o código chega como chegaria para um cliente.
O custo é que um celular é um número só, e ele precisa ficar ligado e online. As seções abaixo tratam dos dois pontos.
Como enviar códigos SMS de um iPhone para o seu CI
Adicione um destino Webhook no Fwrd que fique só com códigos e depois uma automação de Mensagem que entregue cada mensagem com código ao Fwrd. O guia do webhook cobre o lado do endpoint por inteiro.
Adicione um webhook no Fwrd. Abra o Fwrd, toque em + e escolha “Webhook”. Cole o endereço HTTPS completo do seu endpoint no campo “Configuration” (Configuração), toque em “Send Test Message” (Enviar mensagem de teste) para o seu endpoint conhecer os campos e salve com a marca de seleção.
Fique só com os códigos. No mesmo destino, escolha “Only Some Texts” (Só algumas mensagens) em “Which Texts” (Quais mensagens) e ative “Looks Like a Code” (Parece um código), que mantém as mensagens com um código de 4 a 8 dígitos. É uma condição só, então funciona no plano gratuito.
Crie uma automação de Mensagem. No iOS 27, abra o Atalhos e toque em “Biblioteca”, depois em “Automação” e em +. Se aparecer “Descrever um atalho”, toque em “Editar”. Toque em “Automação” e depois em “Mensagem”, troque “Remetente” por “Mensagem” e digite code, ou a palavra que as mensagens do seu serviço usam. No iOS 26, abra a aba “Automação”, toque em +, escolha “Mensagem” e digite a palavra em “A Mensagem Contém”.
Faça a automação rodar sem perguntar. No iOS 27, toque na seta ao lado do acionador e verifique que “Confirmar Antes de Executar” está desativado. Em ⓘ e depois “Privacidade”, verifique que “Permitir Execução Quando Bloqueado” está ativado. No iOS 26, escolha “Executar Imediatamente”, depois toque em “Seguinte” e em “Criar Novo Atalho”.
Adicione a ação do Fwrd. Pesquise por “Forward” e adicione “Forward Message to All Destinations” (Encaminhar Mensagem para Todos os Destinos). Defina o campo Message (Mensagem) dela como “Entrada do Atalho” (no iOS 26, “Entrada do Atalho” e depois “Mensagem”). Toque em “Voltar” para salvar (“OK” no iOS 26).
Leia o código no CI. Faça o seu endpoint guardar cada corpo com a hora em que chegou. Depois que a sua execução pedir um código, consulte o endpoint até achar a mensagem mais recente recebida desde então e extraia os dígitos com uma expressão regular.
Pronto. As novas mensagens com código chegam ao seu endpoint sozinhas, com o iPhone desbloqueado ou bloqueado.
O que o endpoint recebe?
Um POST com corpo JSON que traz a mensagem exatamente como chegou, em content e em text. Não há data nem hora, então registre o horário do seu lado.
{
"content": "Your verification code is 482913",
"text": "Your verification code is 482913"
}
Toda tentativa para a mesma mensagem leva o mesmo cabeçalho Idempotency-Key, então você pode descartar repetições. Se um envio demora demais, recebe um 429 ou um 5xx ou perde a conexão, o Fwrd tenta de novo, até 2 vezes. Qualquer resposta 2xx em até 15 segundos conta como entregue, e redirecionamentos são recusados. Ative “Include Who Sent It” (Incluir quem enviou) nos Ajustes do Fwrd e escolha “Sender” (Remetente) na ação do Fwrd, e o corpo ganha também um campo sender, útil quando vários serviços mandam mensagem para o mesmo número.
O que esta configuração não faz
- Um número atende uma execução por vez. Jobs em paralelo que pedem códigos no mesmo número podem ler o código um do outro, então enfileire a etapa de login ou associe cada código à execução que o pediu.
- O plano gratuito cobre 15 códigos por mês. Depois disso, os códigos param até o mês seguinte, e pipelines movimentados chegam lá rápido; o Fwrd Pro tira o limite por $4.99 por mês ou $29.99 por ano nos EUA. A App Store mostra o preço na sua própria moeda.
- Só recebe. O Fwrd não envia mensagens do iPhone para o seu CI.
- O celular fica ligado e online. Depois de uma reinicialização, o encaminhamento espera alguém desbloquear o iPhone uma vez, e um iPhone que fica 3 dias sem ser desbloqueado reinicia sozinho. Deixe-o carregando num lugar de fácil acesso.
- A ação do Fwrd alcança todos os destinos ativos. Se o mesmo celular também encaminha para outros lugares, use “Forward Message to Destination” (Encaminhar Mensagem para Destino) e escolha o webhook.
- Só mensagens novas. Os códigos que chegaram antes de a automação existir não são enviados.
Para quem precisa de códigos em vez de pipelines, compartilhar códigos de 2FA com a equipe no Slack cobre essa configuração.
Perguntas sobre códigos SMS em automação
O Selenium ou o Playwright conseguem ler um código SMS diretamente?
Não. A automação de navegador não enxerga as mensagens de um celular. Algo precisa tirar a mensagem do celular antes, como uma automação do Atalhos com o Fwrd postando num webhook que o seu script consulta.
Os códigos passam pelos servidores do Fwrd?
Não. O Fwrd não tem conta nem servidor próprio; cada mensagem vai do iPhone direto para o seu endpoint HTTPS, e o endereço fica nas Chaves do iPhone.
Funciona com remetentes de código curto?
Sim. A automação confere o que a mensagem diz, não quem a enviou, então os códigos de números curtos que não estão nos seus Contatos também combinam com uma palavra como code.
Posso usar um fluxo do n8n como endpoint?
Sim. Adicione um nó Webhook em POST, use a Production URL e publique o fluxo, senão ele não responde. Enviar mensagens do iPhone para Zapier, Make ou n8n tem os passos.
Quer os códigos SMS onde o seu CI consegue ler?
O Fwrd posta cada mensagem que combina, de um iPhone da equipe, no seu webhook HTTPS em JSON, sem conta e sem servidor do Fwrd no meio. Comece com 15 encaminhamentos grátis por mês.
Grátis para 15 encaminhamentos por mês. O Pro remove os limites de encaminhamentos e de filtros e inclui uma lista “Never Forward” (Nunca encaminhar), por $4.99/mês ou $29.99/ano, com 7 dias de avaliação gratuita no plano anual para clientes elegíveis.
iPhone · iOS 26 ou posterior