En esta página, se ofrecen sugerencias y solución de problemas específicos de las plataformas de Apple que puedes encontrar cuando usas Firebase.
¿Tienes otras dificultades o tu problema no se describe en esta página? Asegúrate de consultar las Preguntas frecuentes principales de Firebase para obtener más información general o específica sobre Firebase.
También puedes consultar el repositorio de GitHub del SDK de Firebase para plataformas de Apple si necesitas una lista actualizada de los problemas informados y cómo solucionarlos. Te recomendamos que también compartas tus propios problemas relacionados con el SDK de Firebase para plataformas de Apple.
¿Qué versiones de Xcode admite Firebase?
Firebase admite hasta dos versiones principales de Xcode, sin incluir las versiones que Apple ya no admite. Por ejemplo, a partir de marzo de 2019, Apple exigía al menos iOS 12 en todas las apps, lo que significa que se quitó la compatibilidad con Xcode 9 y Xcode 10 era la única versión principal compatible.
Los cambios en la compatibilidad de versiones menores específicas o de parche de Xcode (por ejemplo, de 9.2.0 a 9.4.1) se determinan según las necesidades del SDK de Firebase para plataformas de Apple y una encuesta sobre el uso de los desarrolladores. Estos cambios se reflejan en las notas de la versión del SDK de Firebase para plataformas de Apple y en la página de configuración del SDK.
Para ver la versión mínima de Xcode que admite el SDK, consulta los requisitos que aparecen en Agrega Firebase al proyecto de Apple.
La compatibilidad de Firebase para las versiones beta de Xcode está disponible según el “mejor esfuerzo”. Los desarrolladores pueden realizar un seguimiento de los problemas y enviarlos al repositorio del SDK de Firebase para plataformas de Apple en GitHub.
Mi app solicita al usuario su contraseña para acceder a elementos de Keychain en macOS. ¿Qué procedimiento debo seguir para solucionar el problema?
Actualiza tu dependencia de Firebase a la versión 9.6.0 o a una posterior y agrega la [capacidad de uso compartido de Keychain](/docs/ios/troubleshooting-faq#macos-keychain-sharing) a tu destino.
¿Por qué Firebase requiere la capacidad de uso compartido de Keychain en macOS?
Los SDKs de Firebase utilizan Keychain para almacenar información, como el ID de instalación de Firebase que se usa en FCM. Sin el acceso a Keychain, es posible que los SDKs de Firebase no funcionen correctamente. El llavero de macOS se comporta de manera diferente que el de iOS, que se usa en otras plataformas (iOS, tvOS, macCatalyst y watchOS).
En macOS, las apps usan un llavero compartido que pueden modificar otras apps y
procesos. A diferencia de iOS, no hay un llavero de zona de pruebas al que la app tenga
acceso implícito. Por lo tanto, cuando una app para Mac interactúa con el llavero, el sistema
le solicita al usuario acceso, ya que la app puede estar modificando un elemento del llavero
que no creó. Para solucionar esta discrepancia, Firebase consulta el
llavero con la clave kSecUseDataProtectionKeychain
, que le indica a
la app que consulte un elemento del llavero que es parte de un grupo de acceso del llavero
(este es el comportamiento predeterminado en otras plataformas). La app necesita la función de uso compartido de Keychain
para sintetizar un grupo de acceso que se pueda
compartir entre sus destinos, lo que le otorga permiso a la app para acceder
libremente a los elementos del llavero en el grupo de acceso.
Para obtener más información, consulta la documentación de Keychain de Apple.
En Xcode 13 y las versiones posteriores, ¿por qué mis apps de UIKit no pueden abrir algunas
URLs que registré
en Info.plist?
Apple presentó un límite de 50 entradas LSApplicationQueriesSchemes
en archivos Info.plist
. En 2015, Apple presentó
LSApplicationQueriesSchemes
para limitar la cantidad de consultas de URL
que podía hacer cada aplicación. Con el lanzamiento de Xcode 13, se aplican estos límites,
mientras que en Xcode 12 y en las versiones anteriores no había un límite efectivo para la cantidad de
esquemas.
Algunos productos de Firebase, como Firebase Authentication y Firebase Dynamic Links, requieren el uso de esquemas de URL personalizados para redireccionar a tu aplicación. Estas URLs cumplen con un esquema de URL conciso y coherente que no debe contabilizarse significativamente en el límite del esquema de 50 vínculos.
Ten en cuenta que para las apps que continúan registrando más de 50
LSApplicationQueriesSchemes
, se ignorarán algunos esquemas
de forma silenciosa. Es posible que la app no pueda ejecutar ciertos vínculos directos,
según el orden en el que se agregaron.