我使用Xcode 8.0 beta 5或6创建空的swift项目,并使用像Firebase指南这样的cocoapods导入Firebase。在进口过程中,一切都很好。我使用FIRApp.Configure()
评论配置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
我无法解决问题。
答案 0 :(得分:12)
构建时间警告与可空性声明检查中的Xcode 8更新有关。它应该是无害的,并在即将发布的版本中修复。
FIRInstanceID错误与Xcode 8 beta中的钥匙串错误有关。见radar。钥匙串问题仅影响模拟器运行。测试结束前应该有一个修复程序。与此同时,解决方法是启用钥匙串共享(请参阅Benjamin的回答)或使用真实设备。
钥匙串错误已在Xcode 8.2中修复。
答案 1 :(得分:9)
实际上它与任何类型的bug无关,但是默认情况下您的Keychain Sharing已关闭,您需要启用它。
从项目导航器中,选择目标。在功能标签下,启用钥匙串共享。这应该摆脱所有问题。
答案 2 :(得分:0)
构建时间警告可以通过这种方式修复
转到Pods -> Build Settings -> Use Legacy Swift Language Version
并将其设置为No
,这对我有用。
清理项目并构建。
我能够重现警告并多次修复。