【问题标题】:Xcode 8.0 beta give an error after import Firebase导入 Firebase 后 Xcode 8.0 beta 出现错误
【发布时间】:2017-01-03 00:21:44
【问题描述】:

我使用 Xcode 8.0 beta 5 或 6 创建空的 swift 项目,并使用像 Firebase 指南这样的 cocoapods 导入 Firebase。导入过程中一切正常。我用FIRApp.Configure()comment 配置firebase。我可以处理身份验证,但是当我尝试访问数据库时它不起作用。

FIRApp.h 中的构建时间错误,例如:

"Conflicting nullability specifier on return types, 'nullable' conflicts with existing specifier 'non null'"

Screenshot of FIRApp.h Build-time error

控制台中还有这些错误:

2016-08-26 13:00:32.719: <FIRInstanceID/WARNING> STOP!! Will reset deviceID from memory.
2016-08-26 13:00:32.719: <FIRInstanceID/WARNING> Failed to fetch default token Error Domain=com.firebase.iid Code=6 "(null)"

2016-08-26 13:02:08.329: <FIRInstanceID/WARNING> Failed to retrieve the default GCM token after 5 retries

我无法解决问题。

【问题讨论】:

  • 我有几乎相同的警告。我一直忽略它们,因为一切正常。
  • @TarvoMäesepp 我在我的应用中尝试登录或注册新用户时收到此错误,
  • 请看stackoverflow.com/questions/38456471/…。它对我有帮助。

标签: ios swift xcode firebase


【解决方案1】:

构建时警告与可空性声明检查中的 Xcode 8 更新有关。它应该是无害的,并且在即将发布的版本中得到修复。

FIRInstanceID 错误与 Xcode 8 beta 中的钥匙串错误有关。请参阅此radar。钥匙串问题只影响模拟器运行。在测试版结束之前应该有一个修复。同时,解决方法是启用钥匙串共享(参见 Benjamin 的回答)或使用真实设备。

钥匙串错误已在 Xcode 8.2 中修复。

【讨论】:

  • Xcode 8.2 中未修复钥匙串错误,我使用的是 11.2 版,但我仍然看到此警告向我的日志发送垃圾邮件。
  • @Justin 已修复。您可能会看到类似问题的重新引入或不同的化身。 Xcode 11 需要 Catalyst 应用的钥匙串共享。
【解决方案2】:

实际上它与任何类型的错误无关,而是与您的钥匙串共享默认关闭并且您需要启用它的事实有关。

项目导航器中,选择目标。在功能标签下,开启钥匙串共享。这应该可以解决所有问题。

【讨论】:

  • 根据文档:“启用钥匙串共享允许您的应用与您的团队开发的其他应用共享钥匙串中的密码。”我们不制作其他应用程序,为什么我需要启用它?
  • 虽然这可能看起来不是很清楚,但您实际上是在与 Firebase 共享它。同意,您没有自己开发 Firebase,但 Firebase 会创建一个特定于您的项目的“应用”(存储库)。
  • 我没有使用 Firebase。
  • 那你的评论是不是真的与问题有关?不过,原因可能还是一样的。
【解决方案3】:

可以通过这种方式修复构建时间警告。
转到您的Pods -&gt; Build Settings -&gt; Use Legacy Swift Language Version 并将其设置为No,这对我有用。

清理您的项目并构建。

我能够多次重现警告并进行修复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-04
    • 2014-10-13
    相关资源
    最近更新 更多