CocoaPods ประกาศ ว่าจะเปลี่ยนเป็นแบบอ่านอย่างเดียวในเดือนธันวาคม 2026 หลังจากนั้นจะเผยแพร่พ็อดเวอร์ชันใหม่ ไม่ได้อีกต่อไป ส่วนต่อไปนี้จะให้ข้อมูลเพิ่มเติมเกี่ยวกับการเปลี่ยนแปลงนี้ และอธิบายวิธีโอนย้ายแอปไปยังโปรแกรมจัดการการติดตั้งอื่นๆ
ภาพรวม
- มีการเปลี่ยนแปลงอะไรบ้าง CocoaPods จะเปลี่ยนไปอยู่ในสถานะอ่านอย่างเดียว และ Firebase จะหยุดเผยแพร่เวอร์ชันใหม่ไปยัง CocoaPods ในเดือนตุลาคม 2026
- แอปของฉันจะใช้งานไม่ได้ไหม ไม่ เวอร์ชันที่มีอยู่ของไลบรารี Firebase จะยังคงใช้งานได้ในรีจิสทรี CocoaPods อย่างไม่มีกำหนด และแอปที่ใช้ CocoaPod เวอร์ชันเหล่านั้นจะยังคงทำงานได้ตามปกติ
- ทำไมต้องโอนย้าย หากต้องการรับฟีเจอร์ล่าสุด การปรับปรุงประสิทธิภาพ และการแก้ไขที่สำคัญต่อไป คุณควรโอนย้ายไปใช้ Swift Package Manager หรือ การติดตั้งด้วยตนเอง
Firebase จะหยุดเผยแพร่เวอร์ชันใหม่ไปยัง CocoaPods ในเดือนตุลาคม 2026 เพื่อให้สอดคล้องกับการประกาศจาก CocoaPods การเปลี่ยนแปลงเหล่านี้จะส่งผลต่อพ็อดทั้งหมดต่อไปนี้และทรัพยากร Dependency ย่อย
| พ็อด 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 เป็นจำนวนมาก
วิธีโอนย้ายจาก CocoaPods ไปใช้ Swift Package Manager
- ตรวจสอบว่าทรัพยากร 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 ของแอปอีกครั้งโดยใช้ไฟล์ > เพิ่มทรัพยากร Dependency ของแพ็กเกจ
- เปิดไฟล์
- เมื่อเพิ่มแพ็กเกจ Firebase แล้ว คุณสามารถอัปเดตไลบรารี Firebase ที่คุณใช้ได้โดยไปที่การตั้งค่าโปรเจ็กต์ใน Xcode เลือกเป้าหมายของแอป และอัปเดตไลบรารีในส่วนเฟรมเวิร์ก ไลบรารี และเนื้อหาที่ฝัง
ดูข้อมูลเพิ่มเติมเกี่ยวกับ การใช้ 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 ฉันจะทำให้แอปทำงานต่อไปได้อย่างไร
คุณสามารถใช้พ็อด Firebase เวอร์ชันเก่าหรือคัดลอก Firebase podspec จาก GitHub และโฮสต์ไว้ในที่เก็บข้อมูลจำเพาะของคุณเอง
ไม่ว่าจะกรณีใดก็ตาม เราขอแนะนำให้คุณโอนย้ายออกจาก CocoaPods โดยเร็วที่สุด เราจะไม่ให้การสนับสนุนอย่างเป็นทางการสำหรับการติดตั้ง Firebase จาก podspec โดยตรงหลังจากที่หยุดการสนับสนุน CocoaPods ในเดือนตุลาคม 2026 หากเลือกโฮสต์ podspec ของคุณเอง คุณจะต้องรับผิดชอบในการอัปเดต podspec ให้เป็นเวอร์ชันล่าสุด
ทำไมจึงหยุดการสนับสนุน CocoaPods ในเดือนตุลาคม 2026 ในเมื่อ CocoaPods สามารถเผยแพร่ได้จนถึงเดือนธันวาคม 2026
เราเลือกเดือนตุลาคมเพื่อให้แน่ใจว่าเวอร์ชันสุดท้ายที่เผยแพร่ไปยัง CocoaPods มีความเสถียรก่อนที่รีจิสทรีจะล็อกในเดือนธันวาคม ไทม์ไลน์นี้มีระยะเวลาที่จำเป็นในการประสานงานการอัปเดตครั้งสุดท้ายเหล่านี้อย่างปลอดภัย และช่วยให้ SDK ข้ามแพลตฟอร์ม ซึ่งขึ้นอยู่กับ SDK ดั้งเดิมแต่มีรอบการเผยแพร่ที่ล่าช้า มีเวลาเพียงพอในการเตรียมการเผยแพร่ของตนเอง
แอปของฉันจะหยุดทำงานไหมหากฉันไม่อัปเดต
ไม่ การเลิกใช้งานนี้จะส่งผลต่อเฉพาะไลบรารี Firebase เวอร์ชันที่จะเผยแพร่ในอนาคต เวอร์ชันที่มีอยู่ใน CocoaPods จะยังคงติดตั้งได้ และแอปที่ใช้งานจริงซึ่งใช้พ็อดเวอร์ชันเหล่านั้นจะไม่ได้รับผลกระทบ
การดำเนินการนี้จะส่งผลต่อการเรียกเก็บเงินของโปรเจ็กต์ไหม
ไม่
ฉันได้รับข้อผิดพลาด "FirebaseLibrary not found" เมื่อคอมไพล์โปรเจ็กต์หลังจากโอนย้ายไปใช้ Swift Package Manager ฉันจะแก้ไขได้อย่างไร
ตรวจสอบว่าคุณได้เพิ่มแพ็กเกจ Firebase ลงในโปรเจ็กต์ Xcode แล้ว
เมื่อเพิ่มแพ็กเกจ Firebase Xcode จะแจ้งให้คุณเพิ่มเฟรมเวิร์ก Firebase ลงในเป้าหมายการสร้างของแอป หากลืมเพิ่มเฟรมเวิร์กในขั้นตอนนี้ คุณสามารถเพิ่มได้ทุกเมื่อในภายหลังในการตั้งค่าเป้าหมายในส่วนสร้างระยะ > ลิงก์ไบนารีกับไลบรารี หากโปรเจ็กต์มีเป้าหมายหลายรายการ ให้ตรวจสอบว่าคุณได้เพิ่ม Firebase ลงในเป้าหมายที่ถูกต้อง
การเปลี่ยนนี้จะทำให้ไปป์ไลน์ CI/CD ของฉันหยุดทำงานไหม
ไม่ ไปป์ไลน์ที่เรียกใช้ pod install หรือ pod update จะยังคงทำงานได้สำหรับเวอร์ชันที่มีอยู่ อย่างไรก็ตาม ไปป์ไลน์จะไม่ดึงข้อมูลการอัปเดตไลบรารี Firebase ใหม่ที่เผยแพร่หลังเดือนตุลาคม 2026