Ta strona zawiera wskazówki i sposoby rozwiązywania problemów związanych z platformą Apple, które możesz napotkać podczas korzystania z Firebase.
Masz inne wyzwania lub nie widzisz swojego problemu opisanego poniżej? Zapoznaj się z głównymi często zadawanymi pytaniami dotyczącymi Firebase, aby uzyskać więcej często zadawanych pytań dotyczących Firebase lub produktów.
Możesz również sprawdzić repozytorium Firebase Apple platforms SDK GitHub, aby uzyskać aktualną listę zgłoszonych problemów i sposobów rozwiązywania problemów. Zachęcamy również do zgłaszania tam własnych problemów związanych z zestawem SDK platformy Firebase Apple!
Jakie wersje Xcode obsługuje Firebase?
Firebase obsługuje maksymalnie dwie główne wersje Xcode, nie licząc wersji Xcode, których Apple już nie obsługuje. Na przykład, począwszy od marca 2019 r., Apple wymagał co najmniej iOS 12 we wszystkich aplikacjach, co oznaczało, że obsługa Xcode 9 została usunięta, a Xcode 10 był jedyną obsługiwaną główną wersją.
Zmiany w obsłudze określonych wersji pomocniczych lub poprawek Xcode (na przykład od 9.2.0 do 9.4.1) są określane na podstawie potrzeb zestawu SDK platform Firebase firmy Apple oraz ankiety dotyczącej użytkowania przez programistów. Te zmiany są odzwierciedlone w informacjach o wersji pakietu SDK Firebase Apple oraz na stronie konfiguracji pakietu SDK Firebase Apple .
Aby zobaczyć minimalną wersję Xcode obsługiwaną przez pakiet SDK, sprawdź wymagania wymienione w artykule Dodaj Firebase do swojego projektu Apple .
Wsparcie Firebase dla wersji Beta Xcode jest dostępne na zasadzie „najlepszych starań”. Deweloperzy mogą śledzić i zgłaszać problemy w repozytorium Firebase Apple Platforms SDK w GitHub .
Moja aplikacja prosi użytkownika o podanie hasła dostępu do elementów pęku kluczy w systemie macOS. Jak to naprawić?
Uaktualnij zależność Firebase do wersji 9.6.0 lub nowszej i dodaj [udostępnianie pęku kluczy](/docs/ios/troubleshooting-faq#macos-keychain-sharing) do swojego celu.
Dlaczego Firebase wymaga udostępniania pęku kluczy w systemie macOS?
Pakiety SDK Firebase używają pęku kluczy do przechowywania informacji, takich jak identyfikator instalacji Firebase używany w FCM. Bez dostępu do pęku kluczy zestawy SDK Firebase mogą nie działać poprawnie. Pęk kluczy macOS zachowuje się inaczej niż pęk kluczy w stylu iOS, który jest używany na innych platformach (iOS, tvOS, macCatalyst i watchOS).
W systemie macOS aplikacje używają udostępnionego pęku kluczy, który może być modyfikowany przez inne aplikacje i procesy. W przeciwieństwie do iOS, nie ma pęku kluczy w piaskownicy, do którego aplikacja ma niejawny dostęp. Tak więc, gdy aplikacja Mac wchodzi w interakcję z pękiem kluczy, system prosi użytkownika o dostęp, ponieważ aplikacja Mac może modyfikować element pęku kluczy, którego nie utworzył. Aby rozwiązać tę rozbieżność, Firebase wysyła zapytanie do pęku kluczy za pomocą klucza kSecUseDataProtectionKeychain
, który nakazuje aplikacji wysłać zapytanie do elementu pęku kluczy, który jest częścią grupy dostępu do pęku kluczy (jest to domyślne zachowanie na innych platformach). Funkcja udostępniania pęku kluczy jest wymagana, ponieważ aplikacja potrzebuje jej do syntezy grupy dostępu, która może być współużytkowana przez jej cele, dając w ten sposób pozwolenie aplikacji na swobodny dostęp do elementów pęku kluczy w grupie dostępu.
Aby uzyskać więcej informacji, zobacz dokumentację pęku kluczy firmy Apple.
Dlaczego w wersjach Xcode 13 i nowszych moje aplikacje UIKit nie otwierają niektórych adresów URL, które zarejestrowałem
w moim Info.plist?
Firma Apple wprowadziła limit 50 wpisów LSApplicationQueriesSchemes
w plikach Info.plist
. W 2015 roku firma Apple wprowadziła LSApplicationQueriesSchemes
, aby ograniczyć liczbę zapytań o adresy URL, które może wykonać każda aplikacja. Wraz z wydaniem Xcode 13 limity te są egzekwowane, podczas gdy w Xcode 12 i wcześniejszych nie było skutecznego ograniczenia liczby schematów.
Niektóre produkty Firebase, takie jak Uwierzytelnianie Firebase i Linki dynamiczne Firebase, wymagają użycia niestandardowych schematów adresów URL w celu przekierowania do Twojej aplikacji. Te adresy URL są zgodne ze zwięzłym i spójnym schematem adresów URL, który nie powinien znacząco wliczać się do limitu 50 schematów linków.
Należy pamiętać, że w przypadku aplikacji, które nadal rejestrują więcej niż 50 LSApplicationQueriesSchemes
, niektóre schematy będą dyskretnie ignorowane. Aplikacja może nie być w stanie wykonać niektórych precyzyjnych linków, w zależności od kolejności ich dodawania.