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.