此页面针对您在使用 Firebase 时可能遇到的特定于 Apple 平台的问题提供提示和故障排除。
有其他挑战或没有在下面列出您的问题吗?请务必查看主要的 Firebase 常见问题解答,了解更多泛 Firebase 或产品特定的常见问题解答。
您还可以查看Firebase Apple 平台 SDK GitHub 存储库以获取报告的问题和故障排除的最新列表。我们鼓励您也在那里提交您自己的 Firebase Apple 平台 SDK 相关问题!
我的应用提示用户输入密码以访问 macOS 上的钥匙串项目。我该如何解决?
将您的 Firebase 依赖项升级到版本 9.6.0 或更高版本,并将 [Keychain Sharing capability](/docs/ios/troubleshooting-faq#macos-keychain-sharing) 添加到您的目标。
为什么 Firebase 需要 macOS 上的钥匙串共享功能?
Firebase SDK 使用钥匙串来存储信息,例如用于 FCM 的 Firebase 安装 ID。如果没有钥匙串访问权限,Firebase SDK 可能无法正常运行。 macOS 钥匙串的行为不同于其他平台(iOS、tvOS、macCatalyst 和 watchOS)上使用的 iOS 风格钥匙串。
在 macOS 上,应用程序使用可能被其他应用程序和进程修改的共享钥匙串。与 iOS 不同,应用程序没有隐式访问的沙盒钥匙串。因此,当 Mac 应用程序与钥匙串交互时,系统会提示用户进行访问,因为 Mac 应用程序可能正在修改它未创建的钥匙串项目。为解决此差异,Firebase 使用kSecUseDataProtectionKeychain
键查询钥匙串,它告诉应用程序查询属于钥匙串访问组的钥匙串项目(这是其他平台上的默认行为)。钥匙串共享功能是必需的,因为应用程序需要它来合成一个可以在其目标之间共享的访问组,从而允许应用程序自由访问访问组中的钥匙串项目。
有关详细信息,请参阅 Apple 的钥匙串文档。
在 Xcode 版本 13 及更高版本中,为什么我的 UIKit 应用程序无法打开我注册的某些 URL
在我的 Info.plist 中?
Apple 在Info.plist
文件中引入了 50 个LSApplicationQueriesSchemes
条目的限制。 2015 年,Apple 引入了LSApplicationQueriesSchemes
来限制每个应用程序可以进行的 URL 查询数量。随着 Xcode 13 的发布,这些限制被强制执行,而在 Xcode 12 和更早版本中,方案的数量没有有效限制。
某些 Firebase 产品(如 Firebase 身份验证和 Firebase 动态链接)需要使用自定义 URL 方案才能重定向到您的应用程序。这些 URL 符合简洁一致的 URL 方案,不应显着影响 50 个链接方案限制。
请注意,对于继续注册超过 50 个LSApplicationQueriesSchemes
的应用程序,某些方案将被静默忽略。该应用程序可能无法执行某些深层链接,具体取决于它们的添加顺序。