Solução de problemas e perguntas frequentes sobre as plataformas Apple e o Firebase

Esta página conta com dicas e soluções de problemas específicos da plataforma Apple que podem ser encontrados ao usar o Firebase.

Você está enfrentando algum outro desafio ou seu problema não está descrito abaixo? Confira as Perguntas frequentes sobre o Firebase para ver mais dúvidas relacionadas ao Firebase ou a um produto específico.

Confira também o repositório do SDK do Firebase para as plataformas Apple no GitHub (em inglês) para ter acesso a uma lista atualizada dos problemas informados e respectivas soluções. Recomendamos que você também registre os seus próprios problemas relacionados ao SDK do Firebase para plataformas Apple no repositório.

O Firebase tem suporte a duas versões principais do Xcode, com exceção daquelas que não recebem mais suporte da Apple. Por exemplo, a partir de março de 2019, a Apple exigiu pelo menos o iOS 12 em todos os apps. Ou seja, o suporte ao Xcode 9 foi descontinuado, e o Xcode 10 foi a única versão principal com suporte.

As mudanças no suporte a versões secundárias ou de patch específicas do Xcode (por exemplo, da 9.2.0 à 9.4.1) são determinadas com base nas necessidades do SDK do Firebase para as plataformas da Apple e também se baseiam em uma pesquisa de uso do desenvolvedor. Essas alterações podem ser vistas nas notas de lançamento do SDK do Firebase para as plataformas Apple e na página de configuração do SDK do Firebase para as plataformas Apple.

Para ver a versão mínima do Xcode aceita pelo SDK, confira os requisitos listados em Adicionar o Firebase ao seu projeto da Apple.

O suporte do Firebase para versões Beta do Xcode está disponível de acordo com o modelo de "melhor esforço". Os desenvolvedores podem acompanhar e enviar problemas no repositório do SDK do Firebase no GitHub para as plataformas da Apple.

Faça upgrade da sua dependência do Firebase para a versão 9.6.0 ou mais recente e adicione o [recurso de compartilhamento de conjunto de chaves](/docs/ios/troubleshooting-faq#macos-keychain-sharing) ao seu destino.

Os SDKs do Firebase usam o conjunto de chaves para armazenar informações como o ID de instalação do Firebase usado para o FCM. Sem o acesso ao conjunto de chaves, os SDKs do Firebase podem não funcionar corretamente. O conjunto de chaves do macOS se comporta de maneira diferente do conjunto de chaves no estilo iOS usado em outras plataformas (iOS, tvOS, macCatalyst e watchOS).

No macOS, um app usa um conjunto de chaves compartilhado que pode ser modificado por outros apps e processos. Ao contrário do iOS, não há um conjunto de chaves no sandbox ao qual o app tenha acesso implícito. Portanto, quando um app Mac interage com o conjunto de chaves, o sistema pede acesso ao usuário, já que o aplicativo está modificando um item do conjunto de chaves que ele não criou. Para resolver essa discrepância, o Firebase consulta o conjunto de chaves com a chave kSecUseDataProtectionKeychain, que instrui o app a consultar um item do conjunto que faz parte de um grupo de acesso de conjuntos de chaves (esse é o comportamento padrão em outras plataformas). O recurso de compartilhamento de conjunto de chaves é necessário porque o app precisa sintetizar um grupo de acesso que pode ser compartilhado entre os destinos, concedendo permissão para que o app acesse livremente os itens do conjunto de chaves no grupo de acesso.

Para mais informações, consulte a documentação do conjunto de chaves da Apple.

A Apple introduziu um limite de 50 entradas LSApplicationQueriesSchemes nos arquivos Info.plist. Em 2015, a Apple introduziu LSApplicationQueriesSchemes para limitar o número de consultas de URL que cada app pode fazer. Com o lançamento do Xcode 13, esses limites foram aplicados, mas no Xcode 12 e nas versões anteriores não havia um limite para o número de esquemas.

Alguns produtos do Firebase, como Firebase Authentication e Firebase Dynamic Links, exigem o uso de esquemas de URLs personalizados para redirecionar ao aplicativo. Esses URLs estão em conformidade com um esquema de URL conciso e consistente que não vai ser pesar significativamente no limite de 50 esquemas de links.

Observe que, para apps que continuam registrando mais de 50 LSApplicationQueriesSchemes, alguns esquemas são ignorados silenciosamente. O app pode não conseguir executar determinados links diretos dependendo da ordem em que são adicionados.