Firebase,Swift:返回类型上的可空性说明符冲突,"nullable"与现有说明符"nonnull"冲突



Firebase 3.6.0出现警告。3.

这些是Firebase类:-

  • @class FIROptions
  • @class FIRAuthCredential
  • @class FIRUserProfileChangeRequest

警告消息:

  • (nullable instancetype)init NS_UNAVAILABLE;

我想可能是个bug!

但如果没有,有什么办法来解决它吗?

原始答案:此问题已为我修复为最新的Firebase(3.7.1)。只要做一个"pod update Firebase",然后清理你的项目(通过Option键清理构建文件夹只是为了确保)。

更新答案:不,我的错…这个问题也存在于我身上。

进一步挖掘,这里有一个很好的解释:https://stackoverflow.com/a/39233507/3638762

与此同时(因为我对让你抱太大希望感到不好意思),我找到了一个很好的方法来抑制警告。我不得不猜测-Wnullability警告类型。: -)

在Pods/FirebaseCore/Frameworks/FirebaseCore.framework/Headers/FIRApp.h中添加这三个#pragma行:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wnullability"
- (nullable instancetype)init NS_UNAVAILABLE;
#pragma clang diagnostic pop

干杯!

这是解决方案构建设置->代码签名身份->更改调试并发布给iOS开发者。

在等待Firebase团队解决此错误时,您可以考虑将Build Settings中的Swift Optimization Level更改为None

请注意,这是一个临时的解决方案。请在Firebase发布修复后将其切换回Fast, Whole Module Optimization

在我的情况下,我去构建设置->代码签名身份->更改调试和发布到iOS开发者。

转到您的pod ->构建设置->使用遗留Swift语言版本并将其设置为No,这对我有效。

清理项目并构建。

我能够在多个场合重现警告并修复。

这是由firebase 4.0.4解决的,只需确保在应用程序委托的didFinishLaunchingWithOptions函数中写入"FirebaseApp.configure()",而不是旧的"FIRApp.configure() "

祝你好运

清理派生数据文件夹和清理似乎使这些错误消失了。如果你看到"STOP!!"

将从内存中重置deviceID。

最新更新