Objective-C / iOS - 解析静态库中的重复符号

时间:2016-10-10 12:16:25

标签: ios objective-c xcode logging cocoalumberjack

我的iOS项目使用第三方(非开源)静态库(即libA.a),而libA.a使用CocoaLumberjack,它直接将CocoaLumberjack编译成自身,CocoaLumberjack的版本不清楚。

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

问题:

  1. 有没有办法隐藏 CocoaLumberjack中的libA.a符号,以便Xcode不会报告符号错误?

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

  3. 现在,我正在查看libA.a中的符号,将其与CocoaLumberjack的来源进行对比,我暂时无法找到所使用的CocoaLumberjack libA.a的版本,我的下一步应该只在我的项目中包含CocoaLumberjack的头文件。它应该有效,但我不喜欢这种方式。

1 个答案:

答案 0 :(得分:0)

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

类似的东西:

<h3>

如果静态库是 fat <​​/ em>(包含多个CPU架构),那么这将变得很多更加困难并涉及$ ar x libA.a $ rm cococaLumberjackFile*.o # Whatever they are called $ ar cr libA.a *.o 和很痛苦。

编辑:请继续在代码中使用CocoaLumberjack并与lipo链接。它将为第三方库 CocoaLumberjack提供对象。