Questa pagina offre suggerimenti e indicazioni per la risoluzione dei problemi specifici della piattaforma Apple
che potresti riscontrare durante l'utilizzo di Firebase.
Hai altri problemi o non trovi il tuo problema descritto di seguito? Assicurati di consultare le domande frequenti principali su Firebase per altre domande frequenti generali o specifiche per prodotto.
Puoi anche consultare il
repository GitHub dell'SDK Firebase per le piattaforme Apple
per un elenco aggiornato dei problemi segnalati e della risoluzione dei problemi. Ti invitiamo anche a segnalare i tuoi problemi relativi all'SDK Firebase per le piattaforme Apple.
La mia app chiede all'utente la password per accedere agli elementi del Portachiavi su macOS. Come faccio a risolvere il problema?
Esegui l'upgrade della dipendenza da Firebase alla versione 9.6.0 o successiva e aggiungi la
[funzionalità di condivisione del Portachiavi](/docs/ios/troubleshooting-faq#macos-keychain-sharing)
al tuo target.
Perché Firebase richiede la funzionalità di condivisione del Portachiavi su macOS?
Gli SDK Firebase utilizzano il Portachiavi per memorizzare informazioni come l'ID installazione Firebase utilizzato per FCM. Senza l'accesso al Portachiavi, gli SDK Firebase potrebbero non funzionare correttamente. Il portachiavi macOS si comporta in modo diverso rispetto al portachiavi di stile iOS utilizzato su altre piattaforme (iOS, tvOS, macCatalyst e watchOS).
Su macOS, le app utilizzano un portachiavi condiviso che può essere modificato da altre app e da altri processi. A differenza di iOS, non esiste un portachiavi in sandbox a cui l'app ha accesso implicito. Pertanto, quando un'app per Mac interagisce con il portachiavi, il sistema chiede all'utente l'accesso poiché l'app per Mac potrebbe modificare un elemento del portachiavi che non ha creato. Per risolvere questa discrepanza, Firebase esegue query sul portachiavi con la chiave kSecUseDataProtectionKeychain
, che indica all'app di eseguire query su un elemento del portachiavi che fa parte di un gruppo di accesso al portachiavi (questo è il comportamento predefinito su altre piattaforme). La funzionalità di condivisione del portachiavi è obbligatoria perché l'app ne ha bisogno per sintetizzare un gruppo di accesso che può essere condiviso tra i relativi target, autorizzando così l'app ad accedere liberamente agli elementi del portachiavi nel gruppo di accesso.
Per saperne di più, consulta la
documentazione di Keychain Access
di Apple.
Nelle versioni Xcode 13 e successive, perché le mie app UIKit non riescono ad aprire alcuni URL
che ho registrato nel mio file Info.plist?
Apple ha introdotto un limite di 50 voci LSApplicationQueriesSchemes
nei file Info.plist
. Nel 2015, Apple ha introdotto
LSApplicationQueriesSchemes
per limitare il numero di query sull'URL
che ogni app poteva effettuare. Con il rilascio di Xcode 13, questi limiti vengono applicati, mentre in Xcode 12 e versioni precedenti non esisteva un limite effettivo al numero di schemi.
Alcuni prodotti Firebase, come Firebase Authentication e Firebase Dynamic Links,
richiedono l'utilizzo di schemi URL personalizzati per reindirizzare alla tua applicazione. Questi
URL sono conformi a uno schema URL conciso e coerente che non dovrebbe incidere
in modo significativo sul limite di 50 schemi di link.
Tieni presente che per le app che continuano a registrare più di 50
LSApplicationQueriesSchemes
, alcuni schemi verranno
ignorati silenziosamente. L'app potrebbe non essere in grado di eseguire determinati link diretti,
a seconda dell'ordine in cui vengono aggiunti.