หน้านี้มีเคล็ดลับและการแก้ปัญหาสำหรับปัญหาเฉพาะแพลตฟอร์ม Apple ที่คุณอาจพบเมื่อใช้ Firebase
หากพบปัญหาอื่นๆ หรือไม่เห็นปัญหาของคุณระบุไว้ด้านล่าง โปรดดู
ที่ คำถามที่พบบ่อยหลักเกี่ยวกับ Firebase เพื่อดูคำถามที่พบบ่อยเพิ่มเติมเกี่ยวกับ Firebase หรือ
ผลิตภัณฑ์
นอกจากนี้ คุณยังดูรายการปัญหาที่รายงานและการแก้ปัญหาล่าสุดได้ใน
Firebase Apple Platforms SDK GitHub Repo
และเราขอแนะนำให้คุณรายงานปัญหาที่เกี่ยวข้องกับ 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 จึงใช้คีย์ kSecUseDataProtectionKeychain เพื่อค้นหา Keychain ซึ่งจะบอกให้แอปค้นหารายการ Keychain ที่เป็นส่วนหนึ่งของกลุ่มสิทธิ์เข้าถึง Keychain (ซึ่งเป็นลักษณะการทำงานเริ่มต้นในแพลตฟอร์มอื่นๆ) เพื่อแก้ไขความคลาดเคลื่อนนี้ ต้องมีความสามารถในการแชร์ Keychain
เนื่องจากแอปต้องใช้ความสามารถนี้เพื่อสังเคราะห์กลุ่มที่มีสิทธิ์เข้าถึงที่แชร์ได้ในเป้าหมายต่างๆ ของแอป จึงเป็นการให้สิทธิ์แอปในการเข้าถึงรายการ Keychain ในกลุ่มที่มีสิทธิ์เข้าถึงได้อย่างอิสระ
ดูข้อมูลเพิ่มเติมได้ใน
เอกสารประกอบเกี่ยวกับ Keychain
ใน Xcode เวอร์ชัน 13 ขึ้นไป เหตุใดแอป UIKit ของฉันจึงเปิด URL บางรายการที่ฉันลงทะเบียนไว้
ใน Info.plist ไม่ได้
Apple ได้กำหนดขีดจำกัดรายการ LSApplicationQueriesSchemes
ไว้ที่ 50 รายการในไฟล์ Info.plist ในปี 2015 Apple ได้เปิดตัว
LSApplicationQueriesSchemes เพื่อจำกัดจำนวนการค้นหา URL
ที่แต่ละแอปสามารถทำได้ เมื่อเปิดตัว Xcode 13 ระบบจะบังคับใช้ขีดจำกัดเหล่านี้
ขณะที่ใน Xcode 12 และเวอร์ชันก่อนหน้าไม่มีขีดจำกัดจำนวน
สกีมที่มีผลบังคับใช้
ผลิตภัณฑ์ Firebase บางรายการ เช่น Firebase Authentication และ Firebase Dynamic Links,
กำหนดให้ต้องใช้สกีม URL ที่กำหนดเองเพื่อเปลี่ยนเส้นทางไปยังแอปพลิเคชันของคุณ URL เหล่านี้ เป็นไปตามสกีม URL ที่กระชับและสอดคล้องกัน ซึ่งไม่ควรนับรวม ในขีดจำกัดรูปแบบลิงก์ 50 รายการ
โปรดทราบว่าสำหรับแอปที่ยังคงลงทะเบียนมากกว่า 50
LSApplicationQueriesSchemes ระบบจะละเว้นบางสกีม
โดยไม่มีการแจ้งเตือน แอปอาจดำเนินการ Deep Link บางรายการไม่ได้
ทั้งนี้ขึ้นอยู่กับลำดับการเพิ่ม
ฉันควรใส่ประกาศโอเพนซอร์สใดบ้างในแอป
สำหรับแพลตฟอร์ม Apple, Firebase SDK จะเผยแพร่ภายใต้ใบอนุญาต Apache 2.0