בדף הזה מפורטים טיפים לפתרון בעיות ספציפיות לפלטפורמת Apple שאתם עשויים להיתקל בהן במהלך השימוש ב-Firebase.
נתקלתם בבעיות אחרות או שהבעיה שלכם לא מופיעה ברשימה שלמטה? כדאי לעיין בשאלות הנפוצות העיקריות בנושא Firebase כדי לקבל מידע נוסף על Firebase או על מוצרים ספציפיים.
אפשר גם לעיין במאגר GitHub של Firebase Apple platforms SDK כדי לראות רשימה עדכנית של בעיות שדווחו ופתרונות לבעיות. מומלץ גם לדווח שם על בעיות שקשורות ל-Firebase Apple platforms 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. אם אין גישה ל-Keychain, יכול להיות שערכות ה-SDK של Firebase לא יפעלו כמו שצריך. צרור המפתחות ב-macOS פועל בצורה שונה מצרור המפתחות בסגנון iOS שמשמש בפלטפורמות אחרות (iOS, tvOS, macCatalyst ו-watchOS).
ב-macOS, אפליקציות משתמשות בשרשרת מפתחות משותפת שאפליקציות ותהליכים אחרים יכולים לשנות. בניגוד ל-iOS, אין מחזיק מפתחות בסביבת ארגז חול שהאפליקציה מקבלת אליו גישה מרומזת. לכן, כשמפעילים אינטראקציה בין אפליקציית Mac לבין מחזיק המפתחות, המערכת מבקשת מהמשתמש גישה, כי יכול להיות שאפליקציית Mac משנה פריט במחזיק המפתחות שהיא לא יצרה. כדי לפתור את אי ההתאמה הזו, מערכת Firebase שולחת שאילתה למחזיק המפתחות עם מפתח kSecUseDataProtectionKeychain, שמורה לאפליקציה לשלוח שאילתה לפריט במחזיק המפתחות ששייך לקבוצת גישה למחזיק המפתחות (זו התנהגות ברירת המחדל בפלטפורמות אחרות). היכולת Keychain Sharing נדרשת כי האפליקציה צריכה אותה כדי ליצור קבוצת גישה שאפשר לשתף בין יעדי האפליקציה, וכך לתת לאפליקציה הרשאה לגשת באופן חופשי לפריטים ב-Keychain בקבוצת הגישה.
מידע נוסף זמין ב
מסמכי התיעוד של 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 הונאות קישורים.
שימו לב: באפליקציות שממשיכות לרשום יותר מ-50 LSApplicationQueriesSchemes, המערכת תתעלם באופן שקט מחלק מהסכמות. יכול להיות שהאפליקציה לא תוכל להפעיל קישורים מסוימים לאפליקציה,
בהתאם לסדר שבו הם נוספו.
אילו הודעות לגבי קוד פתוח צריך לכלול באפליקציה?
בפלטפורמות של אפל, Firebase SDK מופץ ברישיון Apache 2.0.