Imagine isso: você quer começar a usar o Universal Links no iOS e a documentação da Apple pediu que você criasse e hospedasse um arquivo da AASA. Então, o que é um arquivo AASA?
O AASA (abreviação de apple-app-site-association) é um arquivo que vive em seu site e associa o domínio do seu site com o seu aplicativo nativo. Em outras palavras, é uma maneira segura de provar a propriedade do domínio para o iOS. Com os esquemas URI, que eram a forma padrão para abrir aplicativos no iOS até o iOS 9, os desenvolvedores de aplicativos poderiam registrar qualquer esquema URI que quisessem e o iOS, sem qualquer verificação, responderia a esses esquemas URI abrindo aplicativos. Por exemplo, se um desenvolvedor indie registra o esquema fb:// URI para um aplicativo de teste, não havia nada que impedisse isso, mesmo o fb:// sendo usado pelo aplicativo nativo do Facebook. O arquivo AASA torna o Universal Links único e seguro porque não há como um desenvolvedor indie hospedar um arquivo AASA no domínio facebook.com.
Vejamos algumas noções básicas do arquivo apple-app-site-association que o ajudará na construção e hospedagem de um em seu domínio.
O arquivo AASA contém um objeto JSON com uma lista de aplicativos e os caminhos URL no domínio que devem ser incluídos ou excluídos como Universal Links. Aqui está um exemplo de um arquivo AASA:
{ "applinks": { "apps": [], "details": [ { "appID": "3XXXXX9M83.io.branch-labs.Branchster", "paths": [ "NOT /e/*", "*", "/", “/archives/201?/* ] } ] } }
No JSON AASA, cada domínio específico do aplicativo contém um dicionário de appID e caminhos. Vejamos o que é cada chave no objeto JSON AASA:
- applinks: Como o arquivo AASA também pode servir a outros propósitos (por exemplo, Credenciais Web Compartilhadas), o objeto applinks define a seção do arquivo utilizada pelo Universal Links.
- aplicativos: A matriz de aplicativos deve estar presente, mas estará sempre vazia.
- appID: Construído combinando o ID da equipe do aplicativo* (ou o Prefixo do aplicativo Apple) e o Bundle Identifier***. No exemplo acima, 3XXXXX9M83 é o ID da Equipe e io.branch-labs.Branchster é o ID do Bundle.
- caminhos: Matriz de cadeias que especificam quais caminhos são incluídos ou excluídos da associação. Você pode usar NOT (antes do caminho – como no exemplo JSON acima) para desativar caminhos. Neste caso, todos os links neste caminho irão para a web em vez de abrir o aplicativo. Você pode usar * como curinga para habilitar todos os caminhos em um diretório e ? para combinar um único caractere (/archives/201?/exemplo no JSON de amostra). Observe que estas cadeias são sensíveis a maiúsculas e minúsculas e que as cadeias de consulta e os identificadores de fragmentos são ignorados.
* Não sabe qual é a ID de sua equipe? Vá até https://developer.apple.com/account e a recupere na seção de Membros.
** Para recuperar o ID do Bundle, vá até o seu projeto Xcode, selecione o projeto e, em seguida, a guia ‘Geral’.
Hospedando o arquivo AASA em seu domínio
Uma vez pronto o seu arquivo AASA, você pode hospedá-lo em seu domínio em https://<<yourdomain>>/apple-app-site-association ou em https://<<yourdomain>>/.well-known/apple-app-site-association.
Ao hospedar o arquivo AASA, certifique-se de que o arquivo AASA:
- É servido em HTTPS.
- Usa o tipo MIME de aplicação/json.
- Não tem um .json anexado ao nome do arquivo apple-app-site-association.
- Tem um tamanho não superior a 128 Kb (requisito no iOS 9.3.1 e posteriores).
Apoio Múltiplos Aplicativos no Mesmo Domínio
Você pode suportar múltiplos aplicativos no mesmo domínio. Para fazer isso, você precisaria adicionar um novo dicionário de appID, caminho à matriz de detalhes no arquivo da AASA para se parecer com algo assim:
{ "applinks": { "apps": [], "details": [ { "appID": "3XXXXX9M83.io.branch-labs.Branchster", "paths": [ "NOT /e/*", "*", "/", “/archives/201?/* ] }, { "appID": "3ZZZZZ9M94.io.branch-test.Branch", "paths": [ "NOT /e/*", "*", "/", “/archives/200?/* ] } ] } }
Se dois ou mais aplicativos associarem com o mesmo caminho de conteúdo no site, então a ordem do dicionário appID, caminhos na matriz de detalhes determinará qual aplicativo terá precedência.
Suportando Vários Domínios para o Mesmo Aplicativo
Cada domínio que o aplicativo precisa suportar tem que ter seu próprio arquivo “apple-app-site-association”. Se o conteúdo servido pelos domínios for diferente, então o conteúdo do arquivo também será diferente para suportar os respectivos caminhos. Caso contrário, o mesmo arquivo AASA pode ser usado, mas precisa ser acessível em todos os domínios suportados. Observe também que, embora example.com e www.example.com possam estar servindo o mesmo conteúdo, você precisa garantir que o arquivo AASA esteja hospedado em ambos os domínios.
Na Filial, nós vivemos e respiramos Deep Links e criamos um validador AASA para ajudar você a construir seu arquivo AASA válido. Você pode encontrá-lo aqui: https://branch.io/resources/aasa-validator/.
Se você estiver usando links da Branch, você pode contornar todas as etapas de construção, validação, hospedagem e gerenciamento de um arquivo AASA, marcando uma única caixa no painel de controle da Branch. Nós cuidamos de todo o resto nos bastidores para você.
Se você não estiver usando links da Branch, agora é a hora de solicitar uma demonstração da Branch!