Trang này cung cấp các mẹo và cách khắc phục sự cố cho những vấn đề riêng của nền tảng của Apple mà bạn có thể gặp phải khi sử dụng Firebase.
Bạn có gặp khó khăn khác hoặc không thấy vấn đề của mình được nêu dưới đây? Đừng quên xem phần Câu hỏi thường gặp chính về Firebase để biết thêm các câu hỏi thường gặp về Firebase hoặc sản phẩm cụ thể.
Bạn cũng có thể xem kho lưu trữ SDK GitHub cho các nền tảng Apple của Firebase để biết danh sách mới nhất về các vấn đề được báo cáo và cách khắc phục sự cố. Bạn cũng nên gửi các vấn đề liên quan đến SDK nền tảng Apple của Firebase tại đó!
Firebase hỗ trợ những phiên bản Xcode nào?
Firebase hỗ trợ tối đa hai 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ợ nữa. Ví dụ: bắt đầu từ tháng 3 năm 2019,
Apple yêu cầu hệ điều hành iOS 12 trở lên trên tất cả ứng dụng, tức là chúng tôi đã ngừng hỗ trợ Xcode 9
và Xcode 10 là phiên bản lớn duy nhất được hỗ trợ.
Những thay đổi đối với khả năng hỗ trợ các phiên bản nhỏ hoặc bản vá 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 nền tảng Apple của Firebase và bản khảo sát về việ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 cho nền tảng Apple của Firebase và trang thiết lập SDK nền tảng Apple của Firebase.
Để 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 nêu trong bài viết
Thêm Firebase vào dự án Apple của bạn.
Chúng tôi luôn cung cấp tính năng hỗ trợ của Firebase cho các bản phát hành Beta của Xcode trên cơ sở "nỗ lực tối đa". Nhà phát triển có thể theo dõi và gửi các vấn đề trong Kho lưu trữ SDK nền tảng Apple của Firebase 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 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 [tính 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?
Các SDK của Firebase sử dụng chuỗi khoá để lưu trữ thông tin như mã cài đặt Firebase dùng cho FCM. Nếu không có quyền truy cập Chuỗi khoá, Firebase SDK có thể
không hoạt động đúng cách. Chuỗi khoá macOS hoạt động khác với chuỗi khoá 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, ứng dụng không có chuỗi khoá hộp cát nào mà có quyền truy cập ngầm ẩn. 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 truy cập vì ứng dụng Mac đó có thể đang sửa đổi một mục trong chuỗi khoá mà hệ thống không tạo. Để giải quyết sự khác biệt này, Firebase sẽ truy vấn
chuỗi khoá bằng khoá kSecUseDataProtectionKeychain
. Khoá này yêu cầu ứng dụng truy vấn một mục chuỗi khoá thuộc 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 bắt buộc phải sử dụng tính năng Chia sẻ chuỗi khoá vì ứng dụng cần tổng hợp một nhóm truy cập có thể được chia sẻ giữa các mục tiêu, từ đó cho phép ứ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 các phiên bản Xcode 13 trở lên, tại sao các ứng dụng UIKit của tôi không thể mở một số
URL mà tôi đã đăng ký
trong tệp Info.plist?
Apple đã đặt giới hạn là 50 mục LSApplicationQueriesSchemes
trong các tệp Info.plist
. Năm 2015, Apple ra mắt LSApplicationQueriesSchemes
để giới hạn số lượng truy vấn URL mà mỗi ứng dụng có thể thực hiện. Với bản phát hành Xcode 13, các giới hạn này được thực thi,
trong khi ở Xcode 12 trở về trước, số lượng
giao thức không có hiệu lực.
Một số sản phẩm của Firebase, như tính năng Xác thực Firebase và Đường liên kết động của Firebase,
yêu cầu sử dụng giao thức URL tuỳ chỉnh để chuyển hướng đến ứng dụng của bạn. 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 lược đồ 50 đường liên kết.
Xin lưu ý rằng đối với các ứng dụng tiếp tục đăng ký hơn 50 LSApplicationQueriesSchemes
, một số giao thức sẽ tự động bị bỏ qua. Ứng dụng có thể không thực thi được một số đường liên kết sâu, tuỳ thuộc vào thứ tự thêm các đường liên kết sâu.