این صفحه نکات و عیب یابی مشکلات پلتفرم اپل را ارائه می دهد که ممکن است هنگام استفاده از Firebase با آن مواجه شوید.
چالش های دیگری دارید یا مشکل خود را در زیر نمی بینید؟ حتماً سؤالات متداول اصلی Firebase را برای سؤالات متداول pan-Firebase یا محصول خاص بررسی کنید.
همچنین می توانید برای لیست به روز مشکلات گزارش شده و عیب یابی ، مخزن SDK GitHub پلتفرم Firebase Apple را بررسی کنید. ما شما را تشویق می کنیم که مسائل مربوط به SDK پلتفرم Apple Firebase خود را نیز در آنجا ثبت کنید!
Firebase چه نسخه هایی از Xcode را پشتیبانی می کند؟
Firebase حداکثر دو نسخه اصلی Xcode را پشتیبانی می کند، بدون احتساب نسخه های Xcode که اپل دیگر پشتیبانی نمی کند. به عنوان مثال، از مارس 2019، اپل به حداقل iOS 12 در همه برنامه ها نیاز داشت، به این معنی که پشتیبانی Xcode 9 حذف شد و Xcode 10 تنها نسخه اصلی پشتیبانی شده بود.
تغییرات پشتیبانی از نسخههای جزئی یا وصلهای خاص Xcode (به عنوان مثال، 9.2.0 تا 9.4.1) بر اساس نیازهای SDK پلتفرمهای Apple Firebase و بررسی استفاده از توسعهدهندگان تعیین میشوند. این تغییرات در یادداشتهای انتشار SDK پلتفرمهای Apple Firebase و صفحه راهاندازی SDK پلتفرمهای Apple Firebase منعکس شدهاند.
برای مشاهده حداقل نسخه Xcode که توسط SDK پشتیبانی می شود، الزامات فهرست شده در افزودن Firebase به پروژه Apple خود را بررسی کنید.
پشتیبانی Firebase برای نسخه های بتا Xcode بر اساس "بهترین تلاش" در دسترس است. توسعه دهندگان می توانند مشکلات را در مخزن SDK پلتفرم های اپل Firebase در GitHub ردیابی و ارسال کنند.
برنامه من از کاربر می خواهد رمز عبور خود را برای دسترسی به موارد Keychain در macOS وارد کند. چگونه این را درست کنم؟
وابستگی Firebase خود را به نسخه 9.6.0 یا بالاتر ارتقا دهید و [قابلیت اشتراکگذاری زنجیره کلید] (/docs/ios/troubleshooting-faq#macos-keychain-sharing) را به هدف خود اضافه کنید.
چرا Firebase به قابلیت Keychain Sharing در macOS نیاز دارد؟
Firebase SDK از زنجیره کلید برای ذخیره اطلاعاتی مانند شناسه نصب Firebase استفاده شده برای FCM استفاده می کند. بدون دسترسی به Keychain، SDK های Firebase ممکن است به درستی کار نکنند. دسته کلید macOS رفتار متفاوتی نسبت به دسته کلید به سبک iOS دارد که در سایر پلتفرمها (iOS، tvOS، macCatalyst و watchOS) استفاده میشود.
در macOS، برنامهها از یک زنجیره کلید مشترک استفاده میکنند که ممکن است توسط برنامهها و فرآیندهای دیگر اصلاح شود. برخلاف iOS، هیچ زنجیره کلید سندباکسی وجود ندارد که اپلیکیشن به طور ضمنی به آن دسترسی داشته باشد. بنابراین، هنگامی که یک برنامه مک با زنجیره کلید تعامل می کند، سیستم از کاربر می خواهد به آن دسترسی داشته باشد، زیرا برنامه Mac ممکن است در حال تغییر آیتم زنجیره کلیدی باشد که آن را ایجاد نکرده است. برای رفع این اختلاف، Firebase با کلید kSecUseDataProtectionKeychain
از زنجیره کلید درخواست میکند، که به برنامه میگوید یک آیتم زنجیرهکلیدی را که بخشی از گروه دسترسی به زنجیره کلید است (این رفتار پیشفرض در پلتفرمهای دیگر است) جستجو کند. قابلیت اشتراکگذاری Keychain مورد نیاز است، زیرا برنامه برای ترکیب کردن یک گروه دسترسی که میتواند بین اهدافش به اشتراک گذاشته شود، به آن نیاز دارد، بنابراین به برنامه اجازه میدهد آزادانه به آیتمهای زنجیرهکلیدی در گروه دسترسی دسترسی داشته باشد.
برای اطلاعات بیشتر، به مستندات Keychain اپل مراجعه کنید.
در نسخه های Xcode 13 و جدیدتر، چرا برنامه های UIKit من نمی توانند برخی از URL هایی را که ثبت کرده ام باز کنند
در Info.plist من؟
اپل محدودیت 50 ورودی LSApplicationQueriesSchemes
را در فایل های Info.plist
معرفی کرد. در سال 2015، اپل LSApplicationQueriesSchemes
برای محدود کردن تعداد جستجوهای URL که هر برنامه می تواند ایجاد کند، معرفی کرد. با انتشار Xcode 13، این محدودیت ها اعمال می شوند، در حالی که در Xcode 12 و قبل از آن هیچ محدودیت موثری برای تعداد طرح ها وجود نداشت.
برخی از محصولات Firebase، مانند Firebase Authentication و Firebase Dynamic Links ، نیاز به استفاده از طرحهای URL سفارشی برای تغییر مسیر به برنامه شما دارند. این URL ها با یک طرح URL مختصر و سازگار مطابقت دارند که نباید به طور قابل توجهی در بین محدودیت طرح پیوند 50 حساب شود.
توجه داشته باشید که برای برنامههایی که به ثبت بیش از 50 LSApplicationQueriesSchemes
ادامه میدهند، برخی از طرحها بیصدا نادیده گرفته میشوند. بسته به ترتیب اضافه شدن آنها، ممکن است برنامه نتواند پیوندهای عمیق خاصی را اجرا کند.
،
این صفحه نکات و عیب یابی مشکلات پلتفرم اپل را ارائه می دهد که ممکن است هنگام استفاده از Firebase با آن مواجه شوید.
چالش های دیگری دارید یا مشکل خود را در زیر نمی بینید؟ حتماً سؤالات متداول اصلی Firebase را برای سؤالات متداول pan-Firebase یا محصول خاص بررسی کنید.
همچنین می توانید برای لیست به روز مشکلات گزارش شده و عیب یابی ، مخزن SDK GitHub پلتفرم Firebase Apple را بررسی کنید. ما شما را تشویق می کنیم که مسائل مربوط به SDK پلتفرم Apple Firebase خود را نیز در آنجا ثبت کنید!
Firebase چه نسخه هایی از Xcode را پشتیبانی می کند؟
Firebase حداکثر دو نسخه اصلی Xcode را پشتیبانی می کند، بدون احتساب نسخه های Xcode که اپل دیگر پشتیبانی نمی کند. به عنوان مثال، از مارس 2019، اپل به حداقل iOS 12 در همه برنامه ها نیاز داشت، به این معنی که پشتیبانی Xcode 9 حذف شد و Xcode 10 تنها نسخه اصلی پشتیبانی شده بود.
تغییرات پشتیبانی از نسخههای جزئی یا وصلهای خاص Xcode (به عنوان مثال، 9.2.0 تا 9.4.1) بر اساس نیازهای SDK پلتفرمهای Apple Firebase و بررسی استفاده از توسعهدهندگان تعیین میشوند. این تغییرات در یادداشتهای انتشار SDK پلتفرمهای Apple Firebase و صفحه راهاندازی SDK پلتفرمهای Apple Firebase منعکس شدهاند.
برای مشاهده حداقل نسخه Xcode که توسط SDK پشتیبانی می شود، الزامات فهرست شده در افزودن Firebase به پروژه Apple خود را بررسی کنید.
پشتیبانی Firebase برای نسخه های بتا Xcode بر اساس "بهترین تلاش" در دسترس است. توسعه دهندگان می توانند مشکلات را در مخزن SDK پلتفرم های اپل Firebase در GitHub ردیابی و ارسال کنند.
برنامه من از کاربر می خواهد رمز عبور خود را برای دسترسی به موارد Keychain در macOS وارد کند. چگونه این را درست کنم؟
وابستگی Firebase خود را به نسخه 9.6.0 یا بالاتر ارتقا دهید و [قابلیت اشتراکگذاری زنجیره کلید] (/docs/ios/troubleshooting-faq#macos-keychain-sharing) را به هدف خود اضافه کنید.
چرا Firebase به قابلیت Keychain Sharing در macOS نیاز دارد؟
Firebase SDK از زنجیره کلید برای ذخیره اطلاعاتی مانند شناسه نصب Firebase استفاده شده برای FCM استفاده می کند. بدون دسترسی به Keychain، SDK های Firebase ممکن است به درستی کار نکنند. دسته کلید macOS رفتار متفاوتی نسبت به دسته کلید به سبک iOS دارد که در سایر پلتفرمها (iOS، tvOS، macCatalyst و watchOS) استفاده میشود.
در macOS، برنامهها از یک زنجیره کلید مشترک استفاده میکنند که ممکن است توسط برنامهها و فرآیندهای دیگر اصلاح شود. برخلاف iOS، هیچ زنجیره کلید سندباکسی وجود ندارد که اپلیکیشن به طور ضمنی به آن دسترسی داشته باشد. بنابراین، هنگامی که یک برنامه مک با زنجیره کلید تعامل می کند، سیستم از کاربر می خواهد به آن دسترسی داشته باشد، زیرا برنامه Mac ممکن است در حال تغییر آیتم زنجیره کلیدی باشد که آن را ایجاد نکرده است. برای رفع این اختلاف، Firebase با کلید kSecUseDataProtectionKeychain
از زنجیره کلید درخواست میکند، که به برنامه میگوید یک آیتم زنجیرهکلیدی را که بخشی از گروه دسترسی به زنجیره کلید است (این رفتار پیشفرض در پلتفرمهای دیگر است) جستجو کند. قابلیت اشتراکگذاری Keychain مورد نیاز است، زیرا برنامه برای ترکیب کردن یک گروه دسترسی که میتواند بین اهدافش به اشتراک گذاشته شود، به آن نیاز دارد، بنابراین به برنامه اجازه میدهد آزادانه به آیتمهای زنجیرهکلیدی در گروه دسترسی دسترسی داشته باشد.
برای اطلاعات بیشتر، به مستندات Keychain اپل مراجعه کنید.
در نسخه های Xcode 13 و جدیدتر، چرا برنامه های UIKit من نمی توانند برخی از URL هایی را که ثبت کرده ام باز کنند
در Info.plist من؟
اپل محدودیت 50 ورودی LSApplicationQueriesSchemes
را در فایل های Info.plist
معرفی کرد. در سال 2015، اپل LSApplicationQueriesSchemes
برای محدود کردن تعداد جستجوهای URL که هر برنامه می تواند ایجاد کند، معرفی کرد. با انتشار Xcode 13، این محدودیت ها اعمال می شوند، در حالی که در Xcode 12 و قبل از آن هیچ محدودیت موثری برای تعداد طرح ها وجود نداشت.
برخی از محصولات Firebase، مانند Firebase Authentication و Firebase Dynamic Links ، نیاز به استفاده از طرحهای URL سفارشی برای تغییر مسیر به برنامه شما دارند. این URL ها با یک طرح URL مختصر و سازگار مطابقت دارند که نباید به طور قابل توجهی در بین محدودیت طرح پیوند 50 حساب شود.
توجه داشته باشید که برای برنامههایی که به ثبت بیش از 50 LSApplicationQueriesSchemes
ادامه میدهند، برخی از طرحها بیصدا نادیده گرفته میشوند. بسته به ترتیب اضافه شدن آنها، ممکن است برنامه نتواند پیوندهای عمیق خاصی را اجرا کند.