Apple Mach-O 链接器 (ld) 错误 (Xcode Swift) nanopb

Apple Mach-O Linker (ld) Error(Xcode Swift) nanopb

当我为 TestFlight 上传到 iTunesConnect 时,我注意到一个我从未安装到我的应用程序中的框架。 "nanopb" 就是它的名字。我以前也从未听说过它。我去从我的应用程序中删除文件,然后当我再次去 运行 它时,我开始收到这些错误。

  "_pb_ostream_from_buffer", referenced from:

  "_pb_encode", referenced from:

  "_pb_encode_varint", referenced from:

  "_pb_decode_varint", referenced from:

  "_pb_encode_tag_for_field", referenced from:

  "_pb_read", referenced from:

  "_pb_istream_from_buffer", referenced from:

  "_pb_encode_string", referenced from:

  "_pb_encode_submessage", referenced from:

  "_pb_decode", referenced from:

clang: error: linker command failed with exit code 1 (use -v to see invocation)

通过一些研究,我注意到它可能是一个 Google 框架?我用 Firebase 和 Admob 开发了多个应用程序,但从未见过这个。

我删除了 DerivedData 和 xcuserdata,但没有成功。在我的项目中也没有任何地方可以使用它,因为我说过我从未听说过它。我搜索了我的项目文件夹,看是否还有遗留的文件,也没有。因为我看到链接器命令错误,所以我还检查了是否有重复文件,但也不是。如果有人知道这是什么或如何摆脱它,非常感谢。令人沮丧!

回答了我自己的问题

我只是进入命令行并更新了我所有的 pod 文件。我仍然不知道 nanopb 是什么,但它使用我在 Podfile 中使用的 firebase pods 重新安装,所以我想我可以信任它。清理并构建后,错误消失了

Nanopb 是 Google 协议缓冲区格式的一个小型实现。它可用于数据存储和与各种服务通信。

看起来 Firebase 确实将 nanopb 用于某些用途,因此安装它并且在删除它时出现错误是有道理的: Firebase pod