This page offers tips and troubleshooting for Apple platform-specific issues that you might encounter when using Firebase.
Have other challenges or don't see your issue outlined below? Make sure to check out the main Firebase FAQ for more pan-Firebase or product-specific FAQ.
You can also check out the Firebase Apple platforms SDK GitHub repo for an up-to-date list of reported issues and troubleshooting. We encourage you to file your own Firebase Apple platforms SDK related issues there, too!
What versions of Xcode does Firebase support?
Firebase supports up to two major versions of Xcode, not including versions of Xcode that Apple no longer supports. For example, starting in March 2019, Apple required at least iOS 12 on all apps, meaning Xcode 9 support was dropped and Xcode 10 was the only major version supported.
Changes to support for specific minor or patch versions of Xcode (for example, 9.2.0 to 9.4.1) are determined based on the needs of the Firebase Apple platforms SDK and a survey of developer usage. These changes are reflected in the Firebase Apple platforms SDK release notes and on the Firebase Apple platforms SDK setup page.
To see the minimum Xcode version supported by the SDK, check the requirements listed in Add Firebase to your Apple project.
Firebase support for Beta releases of Xcode is available on a "best effort" basis. Developers can track and submit issues in the Firebase Apple platforms SDK repository on GitHub.
My app prompts the user for their password to access Keychain items on macOS. How do I fix this?
Upgrade your Firebase dependency to version 9.6.0 or higher and add the [Keychain Sharing capability](/docs/ios/troubleshooting-faq#macos-keychain-sharing) to your target.
Why does Firebase require the Keychain Sharing capability on macOS?
Firebase SDKs use keychain to store information like the Firebase installation ID used for FCM. Without Keychain access, Firebase SDKs may not function correctly. The macOS keychain behaves differently than the iOS-style keychain that is used on other platforms (iOS, tvOS, macCatalyst, and watchOS).
On macOS, apps use a shared keychain that may be modified by other apps and
processes. Unlike iOS, there is no sandboxed keychain that the app has
implicit access to. So, when a Mac app interacts with the keychain, the system
prompts the user for access since the Mac app may be modifying a keychain item
that it did not create. To address this discrepancy, Firebase queries the
keychain with the
kSecUseDataProtectionKeychain key, which tells
the app to query a keychain item that is part of a keychain access group
(this is default behavior on other platforms). The Keychain Sharing capability
is required because the app needs it to synthesize an access group that can be
shared amongst its targets, thus giving permission for the app to freely
access keychain items in the access group.
For more information, see Apple's Keychain documentation .