CocoaPods ประกาศ ว่าจะเปลี่ยนเป็นแบบอ่านอย่างเดียวในเดือนธันวาคม 2026 หลังจากนั้นจะเผยแพร่ Pod เวอร์ชันใหม่ ไม่ได้อีกต่อไป ส่วนต่อไปนี้จะให้ข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ และอธิบายวิธีทำการย้ายข้อมูลแอปไปยังเครื่องมือจัดการการติดตั้งอื่นๆ
ภาพรวม
- มีการเปลี่ยนแปลงอะไรบ้าง CocoaPods จะเปลี่ยนไปอยู่ในสถานะอ่านอย่างเดียว และ Firebase จะหยุดเผยแพร่เวอร์ชันใหม่ไปยัง CocoaPods ในเดือนตุลาคม 2026
- แอปของฉันจะใช้งานไม่ได้ไหม ไม่ เวอร์ชันที่มีอยู่ของไลบรารี Firebase จะยังคงใช้งานได้ในรีจิสทรี CocoaPods อย่างไม่มีกำหนด และแอปที่ใช้ CocoaPod เวอร์ชันเหล่านั้นจะยังคงทำงานได้ตามปกติ
- ทำไมจึงต้องย้ายข้อมูล หากต้องการรับฟีเจอร์ล่าสุด การปรับปรุงประสิทธิภาพ และการแก้ไขที่สำคัญต่อไป คุณควรย้ายข้อมูลไปใช้ Swift Package Manager หรือ การติดตั้งด้วยตนเอง
Firebase จะหยุดเผยแพร่เวอร์ชันใหม่ไปยัง CocoaPods ในเดือนตุลาคม 2026 เพื่อให้สอดคล้องกับการประกาศจาก CocoaPods การเปลี่ยนแปลงเหล่านี้จะส่งผลต่อ Pod ทั้งหมดต่อไปนี้และทรัพยากร Dependency ย่อย
| Pod ของ Firebase ที่ได้รับผลกระทบ | ||
|---|---|---|
Firebase |
FirebaseAuth |
FirebaseInstallations |
FirebaseABTesting |
FirebaseCore |
FirebaseMessaging |
FirebaseAI |
FirebaseCrashlytics |
FirebaseMLModelDownloader |
FirebaseAILogic |
FirebaseDatabase |
FirebasePerformance |
FirebaseAnalytics |
FirebaseFirestore |
FirebaseRemoteConfig |
FirebaseAppCheck |
FirebaseFunctions |
FirebaseStorage |
FirebaseAppDistribution |
FirebaseInAppMessaging |
นอกจากนี้ การเปลี่ยนแปลงเหล่านี้จะส่งผลต่อการเผยแพร่ Firebase ทั้งหมดที่รวม Firebase Apple SDK แบบเนทีฟไว้ด้วย ซึ่งรวมถึง Firebase Unity SDK, Firebase C++ SDK และ FlutterFire
ย้ายข้อมูลแอป Apple
หากคุณกำลังย้ายข้อมูลทรัพยากร Dependency อื่นๆ (ที่ไม่ใช่ Firebase) ออกจาก CocoaPods โปรดทราบว่าแนวทางปฏิบัติแนะนำของอุตสาหกรรมคือการใช้วิธีการติดตั้งเพียงวิธีเดียวสำหรับทั้งโปรเจ็กต์ การใช้ CocoaPods และ Swift Package Manager (SPM) ร่วมกันภายในเป้าหมายเดียวกันอาจทำให้เกิดวงจรทรัพยากร Dependency ที่ซับซ้อนและข้อผิดพลาดในการสร้าง หากทรัพยากร Dependency ที่ไม่ใช่ Firebase ยังไม่รองรับ SPM การใช้ การติดตั้งด้วยตนเอง สำหรับไลบรารี Firebase เป็นวิธีที่เสถียรที่สุดในการรวมเวิร์กโฟลว์เข้าด้วยกันขณะย้ายข้อมูล
Swift Package Manager (SPM)
Swift Package Manager คืออะไร
Swift Package Manager (SPM) เป็นเครื่องมือแบบเนทีฟของ Apple สำหรับจัดการการเผยแพร่โค้ด ซึ่งผสานรวมเข้ากับ Xcode โดยตรง จึงไม่จำเป็นต้องใช้เครื่องมือ CLI ภายนอก เช่น CocoaPods และทำให้โครงสร้างโปรเจ็กต์ง่ายขึ้นโดยไม่จำเป็นต้องใช้ .xcworkspace สำหรับการกำหนดค่ามาตรฐานส่วนใหญ่
ย้ายข้อมูลไปใช้ Swift Package Manager
สำหรับโปรเจ็กต์ส่วนใหญ่ การย้ายข้อมูลไปยัง Swift Package Manager ไม่จำเป็นต้องเปลี่ยนโค้ดของแอปพลิเคชัน เว้นแต่ว่าโปรเจ็กต์ของคุณมีการกำหนดค่า Xcode ที่กำหนดเองหรือทรัพยากร Dependency ที่ใช้สคริปต์การติดตั้ง CocoaPods อย่างหนัก
วิธีย้ายข้อมูลไปยัง Swift Package Manager จาก CocoaPods
- ตรวจสอบว่าทรัพยากร Dependency ของแต่ละแอปของคุณรองรับ Swift Package Manager ไลบรารี Firebase ทั้งหมดรองรับ SPM แต่คุณจะต้องตรวจสอบการรองรับ SPM สำหรับทรัพยากร Dependency ที่ไม่ใช่ Firebase ในที่เก็บ GitHub หรือหน้าผลิตภัณฑ์ หากทรัพยากร Dependency ที่ไม่ใช่ Firebase บางรายการไม่รองรับ SPM แล้ว การใช้การติดตั้งด้วยตนเองแทน SPM เป็นเส้นทางการย้ายข้อมูลที่ เสถียรที่สุดจาก CocoaPods
- ปิด Xcode แล้วนำ CocoaPods ออกจากโปรเจ็กต์โดยทำดังนี้
- ถอนการติดตั้งทรัพยากร Dependency ของ CocoaPods โดยเรียกใช้คำสั่งต่อไปนี้ในไดเรกทอรีโปรเจ็กต์
pod deintegrate
- ลบ
.xcworkspaceที่ CocoaPods สร้างขึ้น
- ถอนการติดตั้งทรัพยากร Dependency ของ CocoaPods โดยเรียกใช้คำสั่งต่อไปนี้ในไดเรกทอรีโปรเจ็กต์
- ใน Xcode ให้อัปเดตโปรเจ็กต์ด้วยทรัพยากร Dependency ของ Swift Package Manager โดยทำดังนี้
- เปิดไฟล์
.xcodeprojของโปรเจ็กต์ผ่าน Xcode - เพิ่มทรัพยากร Dependency ของแอปอีกครั้งโดยใช้ File > Add Package Dependencies
- เปิดไฟล์
- เมื่อเพิ่มแพ็กเกจ Firebase แล้ว คุณสามารถอัปเดตไลบรารี Firebase ที่คุณใช้ได้โดยไปที่การตั้งค่าโปรเจ็กต์ใน Xcode เลือกเป้าหมายของแอป แล้วอัปเดตไลบรารีในส่วน Frameworks, Libraries, and Embedded Content
ดูข้อมูลเพิ่มเติมเกี่ยวกับ การใช้ SPM ใน Xcode ได้ในเอกสารประกอบของ Apple
การติดตั้งด้วยตนเอง
การติดตั้งด้วยตนเองคืออะไร
การติดตั้งด้วยตนเองเกี่ยวข้องกับการดาวน์โหลดไฟล์เก็บถาวร Firebase.zip ซึ่งมี XCFrameworks ที่คอมไพล์ไว้ล่วงหน้าสำหรับผลิตภัณฑ์ Firebase ทั้งหมด ซึ่งช่วยให้คุณลากและวาง SDK เฉพาะลงในโปรเจ็กต์ Xcode ได้โดยตรงโดยไม่ต้องใช้เครื่องมือจัดการทรัพยากร Dependency
ย้ายข้อมูลไปใช้การติดตั้งด้วยตนเอง
- ปิด Xcode แล้วนำ CocoaPods ออกจากโปรเจ็กต์โดยทำดังนี้
- ถอนการติดตั้งทรัพยากร Dependency ของ CocoaPods โดยเรียกใช้คำสั่งต่อไปนี้ในไดเรกทอรีโปรเจ็กต์
pod deintegrate
- ลบ
.xcworkspaceที่ CocoaPods สร้างขึ้น
- ถอนการติดตั้งทรัพยากร Dependency ของ CocoaPods โดยเรียกใช้คำสั่งต่อไปนี้ในไดเรกทอรีโปรเจ็กต์
- ทำตามขั้นตอนใน คู่มือการติดตั้ง เพื่อเพิ่ม Firebase ลงในโปรเจ็กต์ด้วยตนเอง
ย้ายข้อมูลแอป Unity, C++ และ Flutter
Firebase Unity SDK และ FlutterFire
นักพัฒนาแอป Unity และ Flutter ส่วนใหญ่ไม่จำเป็นต้องดำเนินการใดๆ การอัปเดตเป็น Firebase เวอร์ชันล่าสุดใน Unity หรือ Flutter จะย้ายข้อมูลเครื่องมือจัดการทรัพยากร Dependency พื้นฐานในแพลตฟอร์ม Apple ไปยัง Swift Package Manager โดยอัตโนมัติ
โปรดทราบว่าหากคุณจัดการทรัพยากร Dependency ที่ไม่ใช่ Firebase ผ่าน CocoaPods คุณอาจต้องย้ายข้อมูลทรัพยากรเหล่านั้นด้วยตนเอง
Firebase C++ SDK
หากคุณรวมทรัพยากร Dependency ของ iOS พื้นฐานผ่าน CocoaPods คุณสามารถทำตามวิธีการย้ายข้อมูลด้านบนเพื่ออัปเดตทรัพยากร Dependency ของ Firebase CocoaPod ให้ใช้ Swift Package Manager แทน
คำถามที่พบบ่อย
ฉันต้องใช้ CocoaPods ต่อไปหลังเดือนตุลาคม 2026 ฉันจะทำให้แอปทำงานต่อไปได้อย่างไร
ไม่ว่าในกรณีใดก็ตาม เราขอแนะนำให้คุณย้ายข้อมูลออกจาก CocoaPods โดยเร็วที่สุด เราจะไม่ให้การสนับสนุนอย่างเป็นทางการสำหรับการติดตั้ง Firebase จาก Podspec โดยตรงหลังจากที่หยุดการสนับสนุน CocoaPods ในเดือนตุลาคม 2026 หากเลือกโฮสต์ Podspec ของคุณเอง คุณจะต้องรับผิดชอบในการอัปเดต Podspec ให้เป็นเวอร์ชันล่าสุด
ทำไมจึงหยุดการสนับสนุน CocoaPods ในเดือนตุลาคม 2026 ในเมื่อ CocoaPods สามารถเผยแพร่ได้จนถึงเดือนธันวาคม 2026
เราเลือกเดือนตุลาคมเพื่อให้แน่ใจว่าเวอร์ชันสุดท้ายที่เผยแพร่ไปยัง CocoaPods มีความเสถียรก่อนที่รีจิสทรีจะล็อกในเดือนธันวาคม ไทม์ไลน์นี้มีระยะเวลาที่จำเป็นในการประสานงานการอัปเดตครั้งสุดท้ายเหล่านี้อย่างปลอดภัย และช่วยให้ SDK ข้ามแพลตฟอร์ม ซึ่งขึ้นอยู่กับ SDK แบบเนทีฟแต่มีรอบการเผยแพร่ที่ล่าช้า มีเวลามากพอในการเตรียมการเผยแพร่ของตนเอง
แอปของฉันจะหยุดทำงานไหมหากฉันไม่อัปเดต
ไม่ การเลิกใช้งานนี้จะส่งผลต่อเฉพาะไลบรารี Firebase เวอร์ชันที่จะเผยแพร่ในอนาคต เวอร์ชันที่มีอยู่ใน CocoaPods จะยังคงติดตั้งได้ และแอปที่ทำให้ใช้งานได้ซึ่งใช้ Pod เวอร์ชันเหล่านั้นจะไม่ได้รับผลกระทบ
การดำเนินการนี้จะส่งผลต่อการเรียกเก็บเงินของโปรเจ็กต์ไหม
ไม่
ฉันได้รับข้อผิดพลาด "FirebaseLibrary not found" เมื่อคอมไพล์โปรเจ็กต์หลังจากย้ายข้อมูลไปยัง Swift Package Manager ฉันจะแก้ไขได้อย่างไร
ตรวจสอบว่าคุณได้เพิ่มแพ็กเกจ Firebase ลงในโปรเจ็กต์ Xcode แล้ว
เมื่อเพิ่มแพ็กเกจ Firebase Xcode จะแจ้งให้คุณเพิ่มเฟรมเวิร์ก Firebase ลงในเป้าหมายการสร้างของแอป หากลืมเพิ่มเฟรมเวิร์กในขั้นตอนนี้ คุณสามารถเพิ่มได้ทุกเมื่อในภายหลังในการตั้งค่าเป้าหมายในส่วน Build Phases > Link Binary with Libraries หากโปรเจ็กต์มีเป้าหมายหลายรายการ ให้ตรวจสอบว่าคุณได้เพิ่ม Firebase ลงในเป้าหมายที่ถูกต้อง
การเปลี่ยนนี้จะทำให้ไปป์ไลน์ CI/CD ของฉันหยุดทำงานไหม
ไม่ ไปป์ไลน์ที่เรียกใช้ pod install หรือ pod update จะยังคงทำงานได้สำหรับเวอร์ชันที่มีอยู่ อย่างไรก็ตาม ไปป์ไลน์จะไม่ดึงข้อมูลการอัปเดตไลบรารี Firebase ใหม่ที่เผยแพร่หลังเดือนตุลาคม 2026