בדף הזה מפורטים טיפים ופתרונות לבעיות ספציפיות לפלטפורמת Apple, שאתם עשויים להיתקל בהן במהלך השימוש ב-Firebase.
נתקלת בבעיות אחרות או שהבעיה שלך לא מופיעה בהמשך? מומלץ לעיין בשאלות הנפוצות הראשיות בנושא Firebase כדי לקבל שאלות נפוצות נוספות בנושא Firebase או שאלות נפוצות ספציפיות למוצרים.
אפשר גם לעיין במאגר GitHub של Firebase Apple platforms SDK כדי למצוא רשימה עדכנית של בעיות שדווחו ודרכים לפתרון בעיות. מומלץ לשלוח דיווחים על בעיות שקשורות ל-SDK של Firebase בפלטפורמות של Apple גם שם.
באילו גרסאות של Xcode יש תמיכה ב-Firebase?
Firebase תומך בשתי גרסאות עיקריות של Xcode (לא יותר), לא כולל גרסאות של Xcode ש-Apple לא תומכת בהן יותר. לדוגמה, החל ממרץ 2019, Apple דרשה לפחות iOS 12 בכל האפליקציות, כלומר התמיכה ב-Xcode 9 בוטלה ו-Xcode 10 הייתה הגרסה הראשית היחידה שנתמכת.
השינויים בתמיכה בגרסאות משניות או תיקוניות ספציפיות של Xcode (לדוגמה, 9.2.0 עד 9.4.1) נקבעים על סמך הצרכים של Firebase Apple platforms SDK וסקר של השימוש של המפתחים. השינויים האלה משתקפים בהערות המוצר של Firebase Apple platforms SDK ובדף ההגדרה של Firebase Apple platforms SDK.
כדי לראות מהי גרסת ה-Xcode המינימלית שנתמכת על ידי ה-SDK, צריך לעיין בדרישות שמפורטות במאמר הוספת Firebase לפרויקט Apple.
התמיכה של Firebase בגרסאות בטא של Xcode זמינה על בסיס "המאמץ הטוב ביותר". מפתחים יכולים לעקוב אחרי בעיות ולשלוח בעיות חדשות במאגר ה-SDK של Firebase לפלטפורמות Apple ב-GitHub.
האפליקציה שלי מבקשת מהמשתמש להזין את הסיסמה שלו כדי לגשת לפריטים ב-Keychain ב-macOS. כיצד אוכל לתקן זאת?
משדרגים את התלות ב-Firebase לגרסה 9.6.0 ואילך ומוסיפים את [היכולת של שיתוף מפתחות](/docs/ios/troubleshooting-faq#macos-keychain-sharing) ליעד.
למה נדרש ב-Firebase שימוש ביכולת 'שיתוף צרור המפתחות' ב-macOS?
ערכות ה-SDK של Firebase משתמשות במפתחות גישה כדי לאחסן מידע כמו מזהה ההתקנה של Firebase שמשמש ל-FCM. בלי גישה אל Keychain, יכול להיות שערכות Firebase SDK לא
יפעלו כראוי. ההתנהגות של מערכת המפתחות (keychain) של macOS שונה משל מערכת המפתחות (keychain) בסגנון iOS שבה משתמשים בפלטפורמות אחרות (iOS, tvOS, macCatalyst
ו-watchOS).
ב-macOS, האפליקציות משתמשות במאגר מפתחות משותף שיכול להיות ששונה על ידי אפליקציות ותהליכים אחרים. בניגוד ל-iOS, אין מפתחות בקונטיינר בידוד (sandbox) של האפליקציה שיש לה גישה משתמעת אליהם. לכן, כשאפליקציה ל-Mac יוצרת אינטראקציה עם מפתחות הגישה, המערכת מבקשת מהמשתמש הרשאת גישה, כי יכול להיות שהאפליקציה ל-Mac תשנה פריט במפתחות הגישה שהיא לא יצרה. כדי לטפל בפערים האלה, מערכת Firebase שולחת שאילתה למפתחות עם המפתח kSecUseDataProtectionKeychain
, שמורה לאפליקציה לשלוח שאילתה לגבי פריט במפתחות שנמצא בקבוצת גישה של מפתחות (זוהי התנהגות ברירת המחדל בפלטפורמות אחרות). היכולת לשתף את מפתחות הגישה נדרשת כי האפליקציה צריכה אותה כדי ליצור קבוצת גישה שאפשר לשתף עם היעדים שלה, וכך לתת לאפליקציה הרשאה לגשת באופן חופשי לפריטי מפתחות הגישה בקבוצת הגישה.
למידע נוסף, עיינו ב
משאבי העזרה של Apple בנושא 'צרור מפתחות'
.
בגרסאות Xcode 13 ואילך, למה אפליקציות UIKit לא יכולות לפתוח חלק מכתובות ה-URL שרשמת
ב-Info.plist?
Apple הגדירה מגבלה של 50 רשומות של LSApplicationQueriesSchemes
בקובצי Info.plist
. בשנת 2015, Apple הציגה את LSApplicationQueriesSchemes
כדי להגביל את מספר השאילתות של כתובות URL שכל אפליקציה יכולה לשלוח. לאחר ההשקה של Xcode 13, המגבלות האלה נאכפות. לעומת זאת, ב-Xcode 12 ובגרסאות קודמות, לא הייתה הגבלה בפועל על מספר הסכמות.
מוצרים מסוימים של Firebase, כמו Firebase Authentication ו-Firebase Dynamic Links, דורשים שימוש בסכימות מותאמות אישית של כתובות URL כדי להפנות לאפליקציה. כתובות ה-URL האלה תואמות לסכמת כתובת URL תמציתית ועקבית, שלא אמורה להשפיע באופן משמעותי על המגבלה של 50 סכמות קישור.
חשוב לשים לב שבאפליקציות שימשיכו לרשום יותר מ-50
LSApplicationQueriesSchemes
, המערכת תתעלם
מסכימות מסוימות. יכול להיות שהאפליקציה לא תוכל להפעיל קישורי עומק מסוימים, בהתאם לסדר שבו הם נוספו.