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