หน้านี้มีเคล็ดลับและการแก้ปัญหาสำหรับปัญหาเฉพาะแพลตฟอร์ม Apple ที่คุณอาจพบเมื่อใช้ Firebase
หากพบปัญหาอื่นๆ หรือไม่เห็นปัญหาของคุณระบุไว้ด้านล่าง โปรดดู
ที่ คำถามที่พบบ่อยหลักของ Firebase เพื่อดูคำถามที่พบบ่อยเพิ่มเติมเกี่ยวกับ Firebase หรือ
ผลิตภัณฑ์
นอกจากนี้ คุณยังดูรายการปัญหาที่รายงานและการแก้ปัญหาล่าสุดได้ใน
ที่เก็บ GitHub ของ Firebase Apple Platforms SDK
และเราขอแนะนำให้คุณรายงานปัญหาที่เกี่ยวข้องกับ Firebase Apple Platforms SDK ของคุณเองที่นั่นด้วย
Firebase รองรับ Xcode เวอร์ชันใดบ้าง
Firebase รองรับ Xcode เวอร์ชันหลักสูงสุด 2 เวอร์ชัน โดยไม่รวมเวอร์ชัน
ของ Xcode ที่ Apple ไม่รองรับอีกต่อไป ตัวอย่างเช่น ตั้งแต่เดือนมีนาคม 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 ฉันจะแก้ไขได้อย่างไร
อัปเกรดทรัพยากร Dependency ของ Firebase เป็นเวอร์ชัน 9.6.0 ขึ้นไป และเพิ่ม
[ความสามารถในการแชร์ Keychain](/docs/ios/troubleshooting-faq#macos-keychain-sharing)
ลงในเป้าหมาย
เหตุใด Firebase จึงต้องมีความสามารถในการแชร์ Keychain ใน macOS
Firebase SDK ใช้ Keychain เพื่อจัดเก็บข้อมูล เช่น รหัสการติดตั้ง Firebase
ที่ใช้สำหรับ FCM หากไม่มีสิทธิ์เข้าถึง Keychain, Firebase SDK อาจทำงานไม่
ถูกต้อง Keychain ของ macOS ทำงานแตกต่างจาก Keychain สไตล์ iOS
ที่ใช้ในแพลตฟอร์มอื่นๆ (iOS, tvOS, macCatalyst,
และ watchOS)
ใน macOS แอปจะใช้ Keychain ที่แชร์ ซึ่งแอปและกระบวนการอื่นๆ อาจแก้ไขได้
ซึ่งต่างจาก iOS ที่ไม่มี Keychain แบบแซนด์บ็อกซ์ที่แอปมีสิทธิ์เข้าถึงโดยนัย ดังนั้น เมื่อแอป Mac โต้ตอบกับ Keychain ระบบจะแจ้งให้ผู้ใช้ให้สิทธิ์เข้าถึง เนื่องจากแอป Mac อาจแก้ไขรายการ Keychain ที่ไม่ได้สร้างขึ้น Firebase จึงแก้ไขความคลาดเคลื่อนนี้โดยการค้นหา
Keychain ด้วยคีย์ kSecUseDataProtectionKeychain ซึ่งจะบอก
ให้แอปค้นหารายการ Keychain ที่เป็นส่วนหนึ่งของกลุ่มที่มีสิทธิ์เข้าถึง Keychain
(ซึ่งเป็นลักษณะการทำงานเริ่มต้นในแพลตฟอร์มอื่นๆ) ความสามารถในการแชร์ Keychain เป็นสิ่งจำเป็นเนื่องจากแอปต้องใช้ความสามารถนี้เพื่อสังเคราะห์กลุ่มที่มีสิทธิ์เข้าถึงที่แชร์ได้ในเป้าหมายต่างๆ จึงให้สิทธิ์แอปในการเข้าถึงรายการ Keychain ในกลุ่มที่มีสิทธิ์เข้าถึงได้อย่างอิสระ
ดูข้อมูลเพิ่มเติมได้ใน
เอกสารประกอบเกี่ยวกับ 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 Scheme ที่กระชับและสอดคล้องกัน ซึ่งไม่ควรนับรวม ในข้อจำกัดของรูปแบบลิงก์ 50 รายการ
โปรดทราบว่าสำหรับแอปที่ยังคงลงทะเบียนมากกว่า 50
LSApplicationQueriesSchemes ระบบจะละเว้นบางสคีมา
โดยไม่มีการแจ้งเตือน แอปอาจเรียกใช้ Deep Link บางรายการไม่ได้
ทั้งนี้ขึ้นอยู่กับลำดับที่เพิ่ม
ฉันควรใส่ประกาศโอเพนซอร์สใดบ้างในแอป
สำหรับแพลตฟอร์ม Apple, Firebase SDK จะเผยแพร่ภายใต้ใบอนุญาต Apache 2.0