Xcode 12:如何修复错误 'archiveRootObject:toFile:' 已弃用

Xcode 12: How to fix the error 'archiveRootObject:toFile:' is deprecated

我正在使用 Xcode 12 的测试版(版本 12.0 beta (12A6159))。我的项目使用 Firebase。 当我尝试构建它时,出现了一些错误,例如:

'archiveRootObject:toFile:' is deprecated: first deprecated in iOS 12.0 - Use +archivedDataWithRootObject:requiringSecureCoding:error: and -writeToURL:options:error: instead

Xcode 告诉我修复文件夹“GoogleDataTransport”中的这个问题,在文件中的这一行:

[NSKeyedArchiver archiveRootObject:self toFile:[GDTCORStorage archivePath]];

我试图愚蠢地按照错误信息告诉我的去做,所以我开始写错误的内容。我录音了:

[NSKeyedArchiver archivedDataWithRootObject:<#(nonnull id)#> requiringSecureCoding:<#(BOOL)#> error:<#(NSError *__autoreleasing  _Nullable * _Nullable)#>];

我不知道我应该写什么来完成空白。 有人知道吗?

即使我们将 Firebase SDK 更新到最新版本,错误仍然出现(使用 Xcode 12 beta (12A6159))。 我向 Firebase 支持报告了这个问题。他们告诉我这看起来像是 CocoaPods 的问题。 然而,他们给了我一个 workaround.

当我有更多信息时,我会更新这个post。