1

我的iOS项目使用了第三方(非开源)静态库(ie libA.a),这个libA.aCocoaLumberjack的,直接编译CocoaLumberjack成自己,版本CocoaLumberjack不清楚。

现在我还想用它CocoaLumberjack来跟踪我的程序中的日志,如果我CocoaLumberjack通过 CocoaPods 安装它会导致重复符号错误。

问题:

  1. 有没有办法隐藏CocoaLumberjack符号以 使libA.aXcode 不会报告符号错误?

  2. 还有其他file logger可以推荐的库吗?

现在我正在查看 中的符号libA.a,将其与 的来源进行对比CocoaLumberjack,并且我已关闭以查找使用的版本,CocoaLumberjack libA.a下一步应该只CocoaLumberjack在我的项目中包含 的头文件。它应该工作,但我不喜欢这种方式。

4

1 回答 1

0

您可以从静态库中解压缩目标文件,然后在没有 CocoaLumberpack 目标文件的情况下重新打包它。

就像是:

$ ar x libA.a
$ rm cococaLumberjackFile*.o      # Whatever they are called
$ ar cr libA.a *.o

如果静态库很胖(包含多个 CPU 架构),那么这将变得更加困难,并且涉及到lipo很多痛苦。

编辑:继续在您的代码中使用 CocoaLumberjack 并链接到libA.a. 它将为第 3 方库CocoaLumberjack 提供对象。

于 2016-10-10T12:18:50.740 回答