На этой странице представлены советы и рекомендации по устранению неполадок, специфичных для платформы Apple, с которыми вы можете столкнуться при использовании Firebase.
Возникли другие проблемы или вы не нашли ответа на свой вопрос ниже? Обязательно ознакомьтесь с основным разделом часто задаваемых вопросов Firebase, где вы найдете больше вопросов, касающихся Firebase в целом или конкретного продукта.
Вы также можете ознакомиться с репозиторием Firebase Apple Platforms SDK на GitHub, где представлен актуальный список зарегистрированных проблем и рекомендации по их устранению. Мы рекомендуем вам также сообщать о своих проблемах, связанных с Firebase Apple Platforms SDK, именно там!
Какие версии Xcode поддерживает Firebase?
Firebase поддерживает до двух основных версий Xcode, не считая тех версий, которые Apple больше не поддерживает. Например, начиная с марта 2019 года, Apple требовала наличия как минимум iOS 12 во всех приложениях, что означало прекращение поддержки Xcode 9 и сохранение только основной поддерживаемой версии Xcode 10.
Изменения в поддержке определенных минорных или исправленных версий Xcode (например, с 9.2.0 до 9.4.1) определяются исходя из потребностей SDK платформ Firebase Apple и результатов опроса разработчиков об их использовании. Эти изменения отражены в примечаниях к выпуску SDK платформ Firebase Apple и на странице настройки SDK платформ Firebase Apple .
Чтобы узнать минимальную версию Xcode, поддерживаемую SDK, ознакомьтесь с требованиями, указанными в разделе «Добавление Firebase в ваш проект Apple» .
Поддержка бета-версий Xcode от Firebase предоставляется «на основе принципа максимальных усилий». Разработчики могут отслеживать и сообщать о проблемах в репозитории Firebase Apple Platforms SDK на GitHub .
Моё приложение запрашивает у пользователя пароль для доступа к элементам связки ключей в macOS. Как это исправить?
Обновите зависимость Firebase до версии 9.6.0 или выше и добавьте [возможность совместного использования связки ключей](/docs/ios/troubleshooting-faq#macos-keychain-sharing) в ваш целевой объект.
Почему Firebase требует наличия функции совместного использования связки ключей в macOS?
SDK Firebase используют связку ключей для хранения такой информации, как идентификатор установки Firebase, используемый для FCM. Без доступа к связке ключей SDK Firebase могут работать некорректно. Связка ключей macOS работает иначе, чем связка ключей в стиле iOS, используемая на других платформах (iOS, tvOS, macCatalyst и watchOS).
В macOS приложения используют общую связку ключей, которая может быть изменена другими приложениями и процессами. В отличие от iOS, здесь нет изолированной связки ключей, к которой приложение имеет неявный доступ. Поэтому, когда приложение Mac взаимодействует со связкой ключей, система запрашивает у пользователя доступ, поскольку приложение Mac может изменять элемент связки ключей, который оно не создавало. Чтобы устранить это несоответствие, Firebase запрашивает связку ключей с помощью ключа kSecUseDataProtectionKeychain , который указывает приложению запрашивать элемент связки ключей, входящий в группу доступа к связке ключей (это поведение по умолчанию на других платформах). Возможность совместного использования связки ключей необходима, поскольку приложению требуется создать группу доступа, которая может быть доступна всем его целевым объектам, тем самым предоставляя приложению разрешение на свободный доступ к элементам связки ключей в этой группе.
Для получения более подробной информации см. документацию Apple по Keychain .
Почему в версиях Xcode 13 и выше мои приложения UIKit не могут открывать некоторые зарегистрированные мной URL-адреса?
В моём файле Info.plist?
Компания Apple ввела ограничение в 50 записей LSApplicationQueriesSchemes в файлах Info.plist . В 2015 году Apple представила LSApplicationQueriesSchemes для ограничения количества запросов к URL-адресам, которые может выполнять каждое приложение. С выходом Xcode 13 эти ограничения стали обязательными, в то время как в Xcode 12 и более ранних версиях не было эффективного ограничения на количество схем.
Некоторые продукты Firebase, такие как Firebase Authentication и Firebase Dynamic Links , требуют использования пользовательских схем URL-адресов для перенаправления на ваше приложение. Эти URL-адреса соответствуют краткой и согласованной схеме URL-адресов, которая не должна существенно учитываться в рамках лимита в 50 схем ссылок.
Обратите внимание, что для приложений, которые продолжают регистрировать более 50 LSApplicationQueriesSchemes , некоторые схемы будут молча игнорироваться. В зависимости от порядка их добавления, приложение может быть не в состоянии выполнить определенные диплинки.