Do Domínio ao Deploy: Hospedando seus Arquivos de Deep Links no Cloudflare Pages (Parte 7.1)
Continuando a série. Este post resolve uma pergunta frequente nos comentários do Post 5: onde hospedar os arquivos de verificação do Android e do iOS sem complicar?
A resposta: Cloudflare Pages + domínio .dev.
Por que Cloudflare Pages
Três requisitos não negociáveis para hospedar assetlinks.json e apple-app-site-association:
- HTTPS sem redirects — o Android rejeita o
assetlinks.jsonse houver qualquer redirect no caminho Content-Typecontrolável — oapple-app-site-associationnão tem extensão, então o servidor precisa saber o MIME type- Domínio customizado — os arquivos precisam estar no mesmo domínio declarado no app
O Cloudflare Pages atende os três. Deploy direto do GitHub — push = publicado.
Por que .dev
O TLD .dev está na lista HSTS Preload do Chrome. HTTPS é obrigatório por especificação — o próprio navegador força a conexão segura antes de chegar ao servidor. Uma preocupação a menos.
Estrutura do projeto
meudominio/
├── .well-known/
│ ├── assetlinks.json
│ └── apple-app-site-association
├── signup.html
├── index.html
└── _headers
O signup.html é o arquivo do Post 7. O index.html é um placeholder para o root não retornar 404.
O arquivo _headers
/.well-known/apple-app-site-association
Content-Type: application/json
/.well-known/assetlinks.json
Content-Type: application/json
Sem esse arquivo, o iOS pode rejeitar o apple-app-site-association silenciosamente — é a causa mais comum de Universal Links que "funcionam às vezes".
Validando o deploy
curl -I https://seudominio.dev/.well-known/assetlinks.json
curl -I https://seudominio.dev/.well-known/apple-app-site-association
Confirme content-type: application/json nos dois. Se não aparecer, revise o _headers — espaçamento incorreto é a causa mais comum.
Fonte (post completo no Medium)
Alguém usa outro provedor para hospedar esses arquivos? Vercel, Firebase, S3? Qual foi a experiência?