Устранение неполадок и усиление; Часто задаваемые вопросы для платформ Apple и Firebase

На этой странице представлены советы и способы устранения проблем, связанных с платформой Apple, с которыми вы можете столкнуться при использовании Firebase.

У вас есть другие проблемы или вы не видите свою проблему, описанную ниже? Обязательно ознакомьтесь с основными часто задаваемыми вопросами по Firebase, чтобы получить дополнительные часто задаваемые вопросы по Firebase или конкретному продукту.

Вы также можете просмотреть репозиторий Firebase SDK для платформ Apple на GitHub, чтобы получить актуальный список сообщаемых проблем и способы их устранения. Мы также рекомендуем вам подавать сюда свои собственные проблемы, связанные с Firebase Apple Platforms SDK!

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 .

Обновите свою зависимость Firebase до версии 9.6.0 или выше и добавьте [возможность совместного использования связки ключей](/docs/ios/troubleshooting-faq#macos-keychain-sharing) к вашей цели.

SDK Firebase используют связку ключей для хранения такой информации, как идентификатор установки Firebase, используемый для FCM. Без доступа к связке ключей Firebase SDK может работать неправильно. Связка ключей macOS ведет себя иначе, чем связка ключей в стиле iOS, которая используется на других платформах (iOS, tvOS, macCatalyst и watchOS).

В macOS приложения используют общую связку ключей, которая может быть изменена другими приложениями и процессами. В отличие от iOS, здесь нет изолированной связки ключей, к которой приложение имеет неявный доступ. Таким образом, когда приложение Mac взаимодействует со связкой ключей, система запрашивает у пользователя доступ, поскольку приложение Mac может изменять элемент связки ключей, который он не создавал. Чтобы устранить это несоответствие, Firebase запрашивает связку ключей с помощью ключа kSecUseDataProtectionKeychain , который сообщает приложению запросить элемент связки ключей, который является частью группы доступа к связке ключей (это поведение по умолчанию на других платформах). Возможность совместного использования связки ключей необходима, поскольку она необходима приложению для синтеза группы доступа, которая может быть разделена между его целями, что дает приложению разрешение на свободный доступ к элементам связки ключей в группе доступа.

Дополнительную информацию см. в документации Apple Keychain .

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 , некоторые схемы будут игнорироваться. Приложение может быть не в состоянии выполнить определенные глубокие ссылки, в зависимости от порядка их добавления.