Trang này cung cấp các mẹo và cách khắc phục sự cố cho các vấn đề dành riêng cho nền tảng của Apple mà bạn có thể gặp phải khi sử dụng Firebase.
Bạn gặp phải vấn đề 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 về Firebase hoặc sản phẩm cụ thể.
Bạn cũng có thể xem
kho lưu trữ GitHub của SDK Firebase cho các nền tảng của Apple
để 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 báo cáo các vấn đề liên quan đến SDK Firebase cho nền tảng của Apple 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 lớn 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, nghĩa là Xcode 9 không còn được hỗ trợ và Xcode 10 là phiên bản chính duy nhất được hỗ trợ.
Các thay đổi về việc hỗ trợ cho các phiên bản nhỏ hoặc bản vá 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 nền tảng Apple của Firebase và 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 nền tảng Apple của Firebase và trên 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 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 Xcode thử nghiệm ở 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 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 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 chức 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 cài đặt Firebase dùng cho FCM. Nếu không có quyền truy cập vào 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 chuỗi khoá dùng chung có thể được sửa đổi bằng các ứng dụng và quy trình khác. Không giống như iOS, không có chuỗi khoá hộp cát nào mà ứng dụng có quyền truy cập ngầm định. 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 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. 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 cần có chức năng Chia sẻ chuỗi khoá vì ứng dụng cần chức năng này để tổng hợp một nhóm truy cập có thể chia sẻ giữa các mục tiêu, từ đó cấp quyền cho ứng dụng truy cập tự do vào các mục chuỗi khoá trong nhóm truy cập.
Để biết thêm thông tin, hãy xem
tài liệu về Keychain
của Apple.
Trong Xcode phiên bản 13 trở lên, tại sao ứng dụng UIKit của tôi không thể mở một số URL mà tôi đã đăng ký
trong Info.plist?
Apple đã đưa ra giới hạn 50 mục nhập LSApplicationQueriesSchemes trong 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 việc 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, không có giới hạn hiệu quả nào đối với số lượng lược đồ.
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 sử dụng lược đồ URL tuỳ chỉnh để chuyển hướng đến ứng dụng của bạn. Các 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à không có thông báo. Ứ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 đó.
Tôi nên đưa những thông báo nào về nguồn mở vào ứng dụng của mình?
Đối với các nền tảng của Apple, Firebase SDK được phân phối theo giấy phép Apache 2.0.