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