Trang này cung cấp các mẹo và cách khắc phục sự cố dành riêng cho 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 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 phần Câu hỏi thường gặp về Firebase chính để 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ữ GitHub của SDK Firebase cho nền tảng Apple để 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 gửi các vấn đề liên quan đến SDK nền tảng Apple của Firebase tại đó!
Ứ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 [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?
SDK 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 vào Kho khoá, SDK Firebase có thể không hoạt động đúng cách. Kho khoá macOS hoạt động theo cách khác với kho 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, không có chuỗi khoá trong hộp cát nào 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 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 cần có tính năng Chia sẻ chuỗi khoá vì ứng dụng cần tính năng này để tổng hợp một nhóm quyền truy cập có thể được chia sẻ giữa các mục tiêu của ứng dụng, từ đó 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 quyền 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 ứ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 đã giới thiệu 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 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 Firebase, chẳng hạn như Firebase Authentication và Firebase Dynamic Links, 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. Các URL này tuân thủ một lược đồ URL ngắn gọn và nhất quán, không đáng kể so với giới hạn 50 lược đồ đườ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.