Na tej stronie znajdziesz wskazówki i wskazówki dotyczące rozwiązywania problemów specyficznych dla platformy Apple, które możesz napotkać podczas korzystania z Firebase.
Masz inne wyzwania lub nie widzisz swojego problemu opisanego poniżej? Pamiętaj, aby zapoznać się z głównymi często zadawanymi pytaniami dotyczącymi Firebase, aby uzyskać więcej często zadawanych pytań dotyczących Firebase lub konkretnych produktów.
Możesz także sprawdzić repozytorium SDK platform Firebase Apple w GitHub, aby uzyskać aktualną listę zgłoszonych problemów i sposobów ich rozwiązywania. Zachęcamy do zgłaszania tam również własnych problemów związanych z pakietem SDK platform Firebase Apple!
Moja aplikacja monituje użytkownika o podanie hasła umożliwiającego dostęp do elementów pęku kluczy w systemie macOS. Jak to naprawić?
Uaktualnij swoją zależność Firebase do wersji 9.6.0 lub nowszej i dodaj [możliwość udostępniania pęku kluczy](/docs/ios/troubleshooting-faq#macos-keychain-sharing) do swojego celu.
Dlaczego Firebase wymaga funkcji udostępniania pęku kluczy w systemie macOS?
Zestawy 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 używany na innych platformach (iOS, tvOS, macCatalyst i watchOS).
W systemie macOS aplikacje korzystają ze wspólnego 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 trybie piaskownicy, do którego aplikacja ma niejawny dostęp. Tak więc, gdy aplikacja na komputerze Mac wchodzi w interakcję z pękiem kluczy, system monituje użytkownika o dostęp, ponieważ aplikacja na komputerze Mac może modyfikować element pęku kluczy, którego nie utworzyła. Aby zaradzić tej rozbieżności, Firebase wysyła zapytanie do pęku kluczy za pomocą klucza kSecUseDataProtectionKeychain
, który nakazuje aplikacji wykonanie zapytania dotyczącego elementu pęku kluczy będącego częścią grupy dostępu do pęku kluczy (jest to zachowanie domyślne 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ółdzielona między jej elementami docelowymi, dając w ten sposób aplikacji pozwolenie na swobodny dostęp do elementów pęku kluczy w grupie dostępu.
Więcej informacji można znaleźć w dokumentacji pęku kluczy firmy Apple.
Dlaczego w Xcode w wersji 13 i nowszych moje aplikacje UIKit nie mogą otwierać niektórych zarejestrowanych przeze mnie adresów URL
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 te limity są egzekwowane, podczas gdy w Xcode 12 i wcześniejszych nie było skutecznego ograniczenia liczby schematów.
Niektóre produkty Firebase, takie jak Firebase Authentication i Firebase Dynamic Links, 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 w znaczący sposób 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 zostaną dyskretnie zignorowane. Aplikacja może nie być w stanie wykonać niektórych precyzyjnych linków, w zależności od kolejności ich dodawania.