导入Firebase后,Xcode 8.0testing版会发出错误提示

我使用Xcode 8.0 beta 5或6创build空的swift项目,并使用类似Firebase指南的cocoapods导入Firebase。 在import过程中,一切都很好。 我使用FIRApp.Configure()注释来configurationFIRApp.Configure() 。 我可以处理身份validation,但是当我试图达到数据库它不起作用。

FIRApp.h构build时间错误, FIRApp.h所示:

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

FIRApp.h生成时错误的屏幕截图

在控制台中也是这样的错误:

 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 

我无法解决问题。

编译时间警告与可空性声明检查中的Xcode 8更新有关。 这应该是无害的,并在即将发布的版本中修复。

FIRInstanceID错误与Xcode 8testing版中的钥匙串错误有关。 看到这个雷达 。 钥匙串问题只影响模拟器运行。 testing结束之前应该有一个修复。 与此同时,解决方法是启用钥匙串共享(请参阅本杰明的答案)或使用真实的设备。

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

其实这是不相关的任何types的错误,但事实上,您的钥匙串共享是默认closures,你需要启用它。

Project Navigator中select目标 。 在function选项卡下启用钥匙串共享 。 这应该摆脱所有的问题。

构build时间警告可以通过这种方式来解决。
转到你的Pods -> Build Settings -> Use Legacy Swift Language Version ,并将其设置为No ,这对我工作。

清理你的项目并build立。

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