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 inny problem lub nie widzisz go poniżej? Więcej odpowiedzi na najczęstsze pytania dotyczące Pan Firebase i konkretnych usług znajdziesz w głównych odpowiedziach na najczęstsze pytania na temat 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 związanych z pakietem SDK Firebase na platformy Apple.
Jakie 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 jest 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ą odzwierciedlone w informacjach o wersji pakietu SDK platform Firebase Apple oraz na stronie konfiguracji pakietu SDK platformy Firebase 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 podanie hasła, aby uzyskać dostęp 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 do wartości docelowej [możliwość 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 macOS działa 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 odróżnieniu od iOS nie ma odizolowanego pęku kluczy, do którego aplikacja ma dostęp. Kiedy więc aplikacja na Maca wchodzi w interakcję z pękiem kluczy, system prosi użytkownika o dostęp, ponieważ może modyfikować element pęku kluczy, który nie został utworzony przez siebie. 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). Funkcja udostępniania pęku kluczy jest wymagana, ponieważ aplikacja wymaga jej do syntetyzowania grupy dostępu, która może być współdzielona przez grupy docelowe, co pozwala aplikacji na swobodny dostęp do elementów pęku kluczy w grupie dostępu.
Więcej informacji znajdziesz w
dokumentacji pęku kluczy
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ń dotyczących adresów URL, które może wysyłać każda aplikacja. 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 do przekierowywania do aplikacji. Te adresy URL są zgodne ze zwięzłym i spójnym schematem adresów URL, który nie powinien wliczać się aż do limitu 50 schematów linków.
Pamiętaj, że w przypadku aplikacji, które nadal rejestrują ponad 50 elementów LSApplicationQueriesSchemes
, niektóre schematy są dyskretnie ignorowane. Aplikacja może nie być w stanie uruchomić niektórych precyzyjnych linków w zależności od kolejności ich dodania.