Na tej stronie znajdziesz wskazówki i porady dotyczące rozwiązywania problemów występujących na platformach Apple, które mogą wystąpić podczas korzystania z Firebase.
Masz inne problemy lub nie widzisz swojego problemu w poniższej liście? Aby dowiedzieć się więcej o Firebase lub poszczególnych usługach, zapoznaj się z najczęstszymi pytaniami dotyczącymi Firebase.
Aktualną listę zgłoszonych problemów i sposobów ich rozwiązania znajdziesz też w repozytorium GitHub pakietu SDK Firebase na platformy Apple. Zachęcamy też do zgłaszania tam problemów z pakietem SDK Firebase na platformy Apple.
Które wersje Xcode obsługuje Firebase?
Firebase obsługuje do 2 głównych wersji Xcode, z wyjątkiem wersji Xcode, które nie są już obsługiwane przez Apple. Na przykład od marca 2019 r. Apple wymaga, aby we wszystkich aplikacjach była używana co najmniej wersja iOS 12, co oznacza, że wycofano obsługę Xcode 9, a Xcode 10 stała się jedyną obsługiwaną wersją główną.
Zmiany w obsługiwanych wersjach Xcode (np. 9.2.0 na 9.4.1) są określane na podstawie potrzeb pakietu SDK Firebase na platformach Apple i na podstawie ankiety dotyczącej sposobu korzystania z pakietu przez programistów. Te zmiany są uwzględnione w notatkach do wersji pakietu SDK Firebase na platformy Apple oraz na stronie konfiguracji pakietu SDK Firebase na platformy Apple.
Aby sprawdzić minimalną wersję Xcode obsługiwaną przez pakiet SDK, zapoznaj się z wymaganiami wymienionymi w artykule Dodawanie Firebase do projektu Apple.
Obsługa Firebase w przypadku wersji beta Xcode jest dostępna na zasadzie „dołożyć wszelkich starań”. Deweloperzy mogą śledzić i przesyłać problemy w repozytorium pakietu SDK Firebase na platformy Apple na GitHubie.
Moja aplikacja prosi użytkownika o hasło, aby uzyskać dostęp do elementów pęku kluczy w systemie macOS. Jak to naprawić?
Zaktualizuj zależność od Firebase do wersji 9.6.0 lub nowszej i dodaj do celu [funkcjonalność udostępniania pęku kluczy](/docs/ios/troubleshooting-faq#macos-keychain-sharing).
Dlaczego Firebase wymaga udostępniania pęku kluczy na komputerach Mac?
Pakiety SDK Firebase używają keychaina do przechowywania informacji, takich jak identyfikator instalacji Firebase używany w przypadku Komunikacji w chmurze Firebase (FCM). Bez dostępu do Keychain pakiety SDK Firebase mogą nie działać prawidłowo. Pęk kluczy w systemie macOS działa inaczej niż pęk kluczy w stylu iOS używany na innych platformach (iOS, tvOS, macCatalyst i watchOS).
Na komputerach Mac aplikacje korzystają z wspólnego sejfu, który może być modyfikowany przez inne aplikacje i procesy. W odróżnieniu od iOS nie ma odizolowanego pęku kluczy, do którego aplikacja ma dostęp. Gdy aplikacja na Macu wchodzi w interakcję z klucznikiem, system prosi użytkownika o dostęp, ponieważ aplikacja może modyfikować element klucznika, którego nie utworzyła. Aby rozwiązać tę rozbieżność, Firebase wysyła zapytanie do klucza kSecUseDataProtectionKeychain
, co informuje aplikację, aby zapytała o element klucza, który jest częścią grupy dostępu do klucza (jest to domyślne zachowanie na innych platformach). Udostępnianie w kluczniku jest wymagane, ponieważ aplikacja potrzebuje tego, aby zsyntetyzować grupę dostępu, którą można udostępniać docelowym urządzeniom. W ten sposób aplikacja uzyskuje uprawnienia do swobodnego uzyskiwania dostępu do elementów klucznika w grupie dostępu.
Więcej informacji znajdziesz w
dokumentacji dotyczącej klucza szyfrującego firmy Apple
.
Dlaczego w wersji Xcode 13 i wyższych aplikacje UIKit nie otwierają niektórych adresów URL zarejestrowanych w pliku Info.plist?
Apple wprowadził limit 50 LSApplicationQueriesSchemes
wpisów w plikach Info.plist
. W 2015 r. firma Apple wprowadziła LSApplicationQueriesSchemes
, aby ograniczyć liczbę zapytań do adresów URL wysyłanych przez poszczególne aplikacje. Wraz z wydaniem Xcode 13 te limity są egzekwowane,
podczas gdy w Xcode 12 i starszych wersjach nie było skutecznego limitu liczby
schematów.
Niektóre usługi Firebase, np. Firebase Authentication i Firebase Dynamic Links, wymagają korzystania z niestandardowych schematów adresów URL do przekierowywania do aplikacji. Te adresy URL są zgodne z zwięzłym i jednolitym schematem adresów URL, który nie powinien znacząco przekraczać limitu 50 schematów linków.
Pamiętaj, że w przypadku aplikacji, które nadal rejestrują więcej niż 50 LSApplicationQueriesSchemes
, niektóre schematy będą ignorowane. Aplikacja może nie być w stanie wykonać niektórych precyzyjnych linków, w zależności od kolejności ich dodania.