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