หน้านี้นำเสนอเคล็ดลับและการแก้ไขปัญหาเฉพาะแพลตฟอร์มของ Apple ที่คุณอาจพบเมื่อใช้ Firebase
มีความท้าทายอื่นๆ หรือไม่พบปัญหาของคุณตามที่ระบุไว้ด้านล่างนี้ ตรวจสอบให้แน่ใจว่าได้ตรวจสอบ คำถามที่พบบ่อยเกี่ยวกับ Firebase หลัก สำหรับคำถามที่พบบ่อยเกี่ยวกับ Pan-Firebase หรือเฉพาะผลิตภัณฑ์เพิ่มเติม
คุณยังสามารถตรวจสอบ repo SDK GitHub ของแพลตฟอร์ม Firebase Apple เพื่อดูรายการปัญหาที่รายงานล่าสุดและวิธีแก้ไขปัญหา เราขอแนะนำให้คุณยื่นปัญหาที่เกี่ยวข้องกับ Firebase Apple platforms SDK ของคุณที่นั่นด้วย!
Xcode เวอร์ชันใดบ้างที่ Firebase รองรับ
Firebase รองรับ Xcode สูงสุดสองเวอร์ชันหลัก ไม่รวมถึง Xcode เวอร์ชันที่ Apple ไม่รองรับอีกต่อไป ตัวอย่างเช่น ตั้งแต่เดือนมีนาคม 2019 เป็นต้นมา Apple ต้องการ iOS 12 เป็นอย่างน้อยในทุกแอป หมายความว่าการรองรับ Xcode 9 ถูกยกเลิก และ Xcode 10 เป็นเวอร์ชันหลักเพียงเวอร์ชันเดียวที่รองรับ
การเปลี่ยนแปลงเพื่อรองรับ Xcode เวอร์ชันรองหรือแพตช์เฉพาะ (เช่น 9.2.0 ถึง 9.4.1) จะพิจารณาตามความต้องการของ Firebase Apple platforms SDK และแบบสำรวจการใช้งานของนักพัฒนาซอฟต์แวร์ การเปลี่ยนแปลงเหล่านี้จะแสดงใน บันทึกประจำรุ่น SDK ของแพลตฟอร์ม Firebase Apple และใน หน้าการตั้งค่า SDK แพลตฟอร์ม Firebase Apple
หากต้องการดูเวอร์ชัน Xcode ขั้นต่ำที่ SDK รองรับ ให้ตรวจสอบข้อกำหนดที่ระบุไว้ใน Add Firebase to your Apple project
การสนับสนุน Firebase สำหรับรุ่นเบต้าของ Xcode มีให้บริการบนพื้นฐาน "ความพยายามอย่างดีที่สุด" นักพัฒนาสามารถติดตามและส่งปัญหาใน ที่เก็บ SDK ของแพลตฟอร์ม Firebase Apple บน GitHub
แอพของฉันแจ้งให้ผู้ใช้ป้อนรหัสผ่านเพื่อเข้าถึงรายการพวงกุญแจบน macOS ฉันจะแก้ไขปัญหานี้ได้อย่างไร
อัปเกรดการพึ่งพา Firebase เป็นเวอร์ชัน 9.6.0 ขึ้นไป และเพิ่ม [ความสามารถในการแชร์พวงกุญแจ](/docs/ios/troubleshooting-faq#macos-keychain-sharing) ให้กับเป้าหมายของคุณ
เหตุใด Firebase จึงต้องการความสามารถในการแชร์พวงกุญแจบน macOS
Firebase SDK ใช้พวงกุญแจเพื่อเก็บข้อมูล เช่น รหัสการติดตั้ง Firebase ที่ใช้สำหรับ FCM หากไม่มีการเข้าถึงพวงกุญแจ Firebase SDK อาจทำงานไม่ถูกต้อง พวงกุญแจ macOS ทำงานแตกต่างจากพวงกุญแจสไตล์ iOS ที่ใช้บนแพลตฟอร์มอื่นๆ (iOS, tvOS, macCatalyst และ watchOS)
บน macOS แอพต่างๆ จะใช้พวงกุญแจที่ใช้ร่วมกันซึ่งอาจถูกแก้ไขโดยแอพและกระบวนการอื่นๆ ซึ่งแตกต่างจาก iOS ตรงที่ไม่มีพวงกุญแจแซนด์บ็อกซ์ที่แอปมีสิทธิ์เข้าถึงโดยปริยาย ดังนั้น เมื่อแอพ Mac โต้ตอบกับพวงกุญแจ ระบบจะแจ้งผู้ใช้ให้เข้าถึง เนื่องจากแอพ Mac อาจแก้ไขรายการพวงกุญแจที่ไม่ได้สร้างขึ้น เพื่อแก้ไขความคลาดเคลื่อนนี้ Firebase จะค้นหาพวงกุญแจด้วยคีย์ kSecUseDataProtectionKeychain
ซึ่งจะบอกให้แอปค้นหารายการพวงกุญแจที่เป็นส่วนหนึ่งของกลุ่มการเข้าถึงพวงกุญแจ (นี่เป็นลักษณะการทำงานเริ่มต้นบนแพลตฟอร์มอื่น) จำเป็นต้องมีความสามารถในการแชร์พวงกุญแจ เนื่องจากแอปต้องการให้สังเคราะห์กลุ่มการเข้าถึงที่สามารถแชร์ระหว่างเป้าหมายได้ ดังนั้นจึงเป็นการให้สิทธิ์สำหรับแอปในการเข้าถึงรายการพวงกุญแจในกลุ่มการเข้าถึงได้อย่างอิสระ
สำหรับข้อมูลเพิ่มเติม โปรดดู เอกสารคู่มือพวงกุญแจ ของ Apple
ใน Xcode เวอร์ชัน 13 และใหม่กว่า เหตุใดแอป UIKit ของฉันจึงไม่สามารถเปิดบาง URL ที่ฉันลงทะเบียนไว้ได้
ใน Info.plist ของฉัน?
Apple แนะนำขีดจำกัด 50 รายการ LSApplicationQueriesSchemes
ในไฟล์ Info.plist
ในปี 2558 Apple ได้เปิดตัว LSApplicationQueriesSchemes
เพื่อจำกัดจำนวนการสืบค้น URL ที่แต่ละแอปสามารถสร้างได้ ด้วยการเปิดตัว Xcode 13 ขีดจำกัดเหล่านี้จะถูกบังคับใช้ ในขณะที่ Xcode 12 และรุ่นก่อนหน้าจะไม่มีการจำกัดจำนวนของโครงร่างที่มีผลบังคับใช้
ผลิตภัณฑ์ Firebase บางอย่าง เช่น Firebase Authentication และ Firebase Dynamic Links ต้องใช้รูปแบบ URL ที่กำหนดเองเพื่อเปลี่ยนเส้นทางไปยังแอปพลิเคชันของคุณ URL เหล่านี้สอดคล้องกับรูปแบบ URL ที่กระชับและสอดคล้องกัน ซึ่งไม่ควรนับรวมกับขีดจำกัดรูปแบบลิงก์ 50 รายการ
โปรดทราบว่าสำหรับแอปที่ยังคงลงทะเบียน LSApplicationQueriesSchemes
มากกว่า 50 รายการ บางแผนจะถูกละเว้นโดยไม่แจ้งให้ทราบ แอปอาจไม่สามารถเรียกใช้ Deep Link บางรายการได้ ทั้งนี้ขึ้นอยู่กับลำดับที่เพิ่มเข้าไป