На этой странице представлены советы и способы устранения проблем, связанных с платформой Apple, с которыми вы можете столкнуться при использовании Firebase.
У вас есть другие проблемы или вы не видите свою проблему, описанную ниже? Обязательно ознакомьтесь с основными часто задаваемыми вопросами по Firebase, чтобы получить дополнительные часто задаваемые вопросы по Firebase или конкретному продукту.
Вы также можете просмотреть репозиторий SDK Firebase Apple для платформ GitHub, чтобы получить актуальный список сообщаемых проблем и способы их устранения. Мы также рекомендуем вам подавать туда свои собственные проблемы, связанные с Firebase Apple Platforms SDK!
Какие версии Xcode поддерживает Firebase?
Firebase поддерживает до двух основных версий Xcode, не считая версий Xcode, которые Apple больше не поддерживает. Например, начиная с марта 2019 года Apple требовала как минимум iOS 12 для всех приложений, а это означает, что поддержка Xcode 9 была прекращена, и Xcode 10 был единственной поддерживаемой основной версией.
Изменения в поддержке конкретных второстепенных или исправленных версий Xcode (например, с 9.2.0 по 9.4.1) определяются на основе потребностей Firebase SDK платформ Apple и опроса использования разработчиками. Эти изменения отражены в примечаниях к выпуску Firebase SDK для платформ Apple и на странице настройки SDK для платформ Firebase Apple .
Чтобы узнать минимальную версию Xcode, поддерживаемую SDK, проверьте требования, перечисленные в разделе «Добавление Firebase в ваш проект Apple» .
Поддержка Firebase для бета-версий Xcode доступна по принципу «приложим все усилия». Разработчики могут отслеживать и сообщать о проблемах в репозитории Firebase SDK для платформ Apple на GitHub .
Мое приложение запрашивает у пользователя пароль для доступа к элементам связки ключей в macOS. Как мне это исправить?
Обновите свою зависимость Firebase до версии 9.6.0 или выше и добавьте [возможность совместного использования связки ключей](/docs/ios/troubleshooting-faq#macos-keychain-sharing) к вашей цели.
Почему Firebase требует возможности совместного использования связки ключей в macOS?
SDK Firebase используют связку ключей для хранения такой информации, как идентификатор установки Firebase, используемый для FCM. Без доступа к связке ключей Firebase SDK может работать неправильно. Связка ключей 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
, некоторые схемы будут игнорироваться. Приложение может быть не в состоянии выполнить определенные глубокие ссылки, в зависимости от порядка их добавления.