Na tej stronie znajdziesz wskazówki i porady dotyczące rozwiązywania problemów z platformą 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.
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 [funkcje 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 usługi 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. Dlatego gdy aplikacja na Macu wchodzi w interakcję z klucznikiem, system prosi użytkownika o dostęp, ponieważ aplikacja na Macu może modyfikować element klucznika, którego nie utworzyła. Aby rozwiązać tę rozbieżność, Firebase wysyła zapytanie do pęku kluczy z kluczem kSecUseDataProtectionKeychain
, co informuje aplikację, aby zapytała o element pęku kluczy, który należy do grupy dostępu do pęku kluczy (jest to domyślne zachowanie na innych platformach). Udostępnianie w sercu 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 w sercu w grupie dostępu.
Więcej informacji znajdziesz w
dokumentacji dotyczącej klucza szyfrującego firmy Apple
.
Dlaczego w wersjach Xcode 13 i nowszych 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ń o adresy URL wysyłanych przez poszczególne aplikacje. Wraz z wydaniem Xcode 13 te limity stały się obowiązkowe, 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, aby przekierować użytkowników do aplikacji. Te adresy URL są zgodne z zwięzłym i spójnym schematem adresów URL, który nie powinien znacząco przekraczać limitu 50 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.