Firebase,Swift:与返回types冲突的可空性说明符,与现有说明符'nonnull'的'可空'冲突
Firebase 3.6.0中的警告。 Xcode 8 – Swift 3。
这些是Firebase课程:
@class FIROptions
-
@class FIRAuthCredential
-
@class FIRUserProfileChangeRequest
警告信息:
- (可空实例types)init NS_UNAVAILABLE;
想来可能是个bug!
但是,如果没有,如何解决它的任何想法?
原始答案 :这个问题对于我来说是最新的Firebase(3.7.1)。 只需做一个“pod更新Firebase”,然后清理您的项目(通过Option键清理生成文件夹,以确保)。
更新回答 :不,我的不好…问题依然存在。
进一步挖掘,这里有一个很好的解释: https : //stackoverflow.com/a/39233507/3638762
在此期间(因为我对你的希望感到不满),我find了一个很好的方法来压制这个警告。 我不得不猜测“无效性”警告types。 😉
在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
干杯!
这里是解决scheme构build设置 – >代码签名身份 – >更改debugging和发布到iOS开发人员。
在等待Firebase团队解决此错误时,您可能会考虑将“ Build Settings
Swift Optimization Level
更改为“ None
。
请注意,这是一个临时的解决方法。 请在Firebase发布修复程序后将其切换回Fast, Whole Module Optimization
。
在我的情况下,我去build设设置 – >代码签名身份 – >更改debugging和发布到iOS开发人员。
去你的豆荚 – >生成设置 – >使用传统的Swift语言版本,并将其设置为否,这为我工作。
清理你的项目并build立。
我能够重现警告并多次修复。
清理派生的数据文件夹和清理似乎使这些错误消失了。 如果您看到“STOP !!将从内存中重置设备ID”。 以及在function中启用钥匙串共享。
它是由firebase 4.0.4解决的,只要确保在应用程序委托中的didFinishLaunchingWithOptions函数中写入“FirebaseApp.configure()”,而不是旧的“FIRApp.configure()”
祝你好运