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.
Meu app está solicitando a senha do usuário para acessar itens do conjunto de chaves no macOS. Como resolvo esse problema?
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.
Por que o Firebase exige o recurso de compartilhamento de conjunto de chaves no macOS?
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.
Nas versões do Xcode a partir da 13, por que meus apps do UIKit não podem abrir
alguns URLs que eu registrei
no Info.plist?
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.