Trang này cung cấp các mẹo và thông tin khắc phục sự cố cụ thể trên nền tảng Apple mà bạn có thể gặp phải khi sử dụng Firebase.
Bạn gặp phải những thách thức khác hoặc không thấy vấn đề của mình được nêu bên dưới? Hãy nhớ xem Câu hỏi thường gặp chính về Firebase để biết thêm câu hỏi thường gặp chung về Firebase hoặc câu hỏi thường gặp dành riêng cho sản phẩm.
Bạn cũng có thể xem kho lưu trữ GitHub của Firebase Apple Platforms SDK để biết danh sách mới nhất về các vấn đề đã báo cáo và cách khắc phục sự cố. Bạn cũng nên báo cáo các vấn đề liên quan đến SDK Firebase cho nền tảng Apple tại đó!
Firebase hỗ trợ những phiên bản Xcode nào?
Firebase hỗ trợ tối đa 2 phiên bản chính của Xcode, không bao gồm các phiên bản Xcode mà Apple không còn hỗ trợ. Ví dụ: kể từ tháng 3 năm 2019, Apple yêu cầu tất cả ứng dụng phải có ít nhất iOS 12, tức là không còn hỗ trợ Xcode 9 và Xcode 10 là phiên bản chính duy nhất được hỗ trợ.
Những thay đổi đối với việc hỗ trợ các phiên bản nhỏ hoặc phiên bản vá lỗi cụ thể của Xcode (ví dụ: 9.2.0 đến 9.4.1) được xác định dựa trên nhu cầu của SDK Firebase cho các nền tảng của Apple và một cuộc khảo sát về mức độ sử dụng của nhà phát triển. Những thay đổi này được phản ánh trong ghi chú phát hành SDK Firebase cho các nền tảng của Apple và trên trang thiết lập SDK Firebase cho các nền tảng của Apple.
Để xem phiên bản Xcode tối thiểu mà SDK hỗ trợ, hãy kiểm tra các yêu cầu được liệt kê trong phần Thêm Firebase vào dự án Apple.
Firebase hỗ trợ các bản phát hành Beta của Xcode ở mức "tốt nhất có thể". Nhà phát triển có thể theo dõi và gửi vấn đề trong kho lưu trữ SDK của Firebase cho các nền tảng Apple trên GitHub.
Ứng dụng của tôi nhắc người dùng nhập mật khẩu để truy cập vào các mục trong Keychain trên macOS. Làm cách nào để tôi chữa lỗi này?
Nâng cấp phần phụ thuộc Firebase lên phiên bản 9.6.0 trở lên và thêm [khả năng Chia sẻ chuỗi khoá](/docs/ios/troubleshooting-faq#macos-keychain-sharing) vào mục tiêu của bạn.
Tại sao Firebase yêu cầu tính năng Chia sẻ chuỗi khoá trên macOS?
SDK Firebase sử dụng chuỗi khoá để lưu trữ thông tin như mã nhận dạng lượt cài đặt Firebase dùng cho FCM. Nếu không có quyền truy cập vào Keychain, Firebase SDK có thể không hoạt động đúng cách. Keychain trên macOS hoạt động khác với keychain theo kiểu iOS được dùng trên các nền tảng khác (iOS, tvOS, macCatalyst và watchOS).
Trên macOS, các ứng dụng sử dụng một chuỗi khoá dùng chung mà các ứng dụng và quy trình khác có thể sửa đổi. Không giống như iOS, không có chuỗi khoá được cách ly mà ứng dụng có quyền truy cập ngầm. Vì vậy, khi một ứng dụng Mac tương tác với chuỗi khoá, hệ thống sẽ nhắc người dùng cấp quyền truy cập vì ứng dụng Mac có thể đang sửa đổi một mục trong chuỗi khoá mà ứng dụng đó không tạo. Để giải quyết sự khác biệt này, Firebase truy vấn chuỗi khoá bằng khoá kSecUseDataProtectionKeychain
, cho biết ứng dụng sẽ truy vấn một mục trong chuỗi khoá thuộc một nhóm truy cập chuỗi khoá (đây là hành vi mặc định trên các nền tảng khác). Bạn cần có khả năng Chia sẻ chuỗi khoá vì ứng dụng cần khả năng này để tổng hợp một nhóm truy cập có thể được chia sẻ giữa các mục tiêu của ứng dụng, nhờ đó cấp quyền cho ứng dụng tự do truy cập vào các mục trong chuỗi khoá trong nhóm truy cập.
Để biết thêm thông tin, hãy xem
tài liệu về Chuỗi khoá
của Apple.
Trong Xcode phiên bản 13 trở lên, tại sao các ứng dụng UIKit của tôi không mở được một số URL mà tôi đã đăng ký
trong Info.plist?
Apple đã đưa ra giới hạn là 50 mục LSApplicationQueriesSchemes
trong tệp Info.plist
. Vào năm 2015, Apple đã giới thiệu LSApplicationQueriesSchemes
để giới hạn số lượng truy vấn URL mà mỗi ứng dụng có thể thực hiện. Khi Xcode 13 được phát hành, các giới hạn này sẽ được thực thi, trong khi ở Xcode 12 trở về trước, số lượng lược đồ không có giới hạn hiệu quả.
Một số sản phẩm của Firebase, chẳng hạn như Firebase Authentication và Firebase Dynamic Links, yêu cầu bạn sử dụng các lược đồ URL tuỳ chỉnh để chuyển hướng đến ứng dụng của mình. Những URL này tuân thủ một lược đồ URL ngắn gọn và nhất quán, không được tính đáng kể vào giới hạn 50 lược đồ liên kết.
Xin lưu ý rằng đối với những ứng dụng tiếp tục đăng ký hơn 50 LSApplicationQueriesSchemes
, một số lược đồ sẽ bị bỏ qua một cách âm thầm. Ứng dụng có thể không thực thi được một số đường liên kết sâu nhất định, tuỳ thuộc vào thứ tự thêm các đường liên kết đó.