我的iOS项目使用第三方(非开源)静态库(即libA.a
),而libA.a
使用CocoaLumberjack
,它直接将CocoaLumberjack
编译成自身,CocoaLumberjack
的版本不清楚。
现在我还想使用CocoaLumberjack
来跟踪我的程序中的日志,如果我通过CocoaPods安装CocoaLumberjack
,将导致重复的符号错误。
问题:
有没有办法隐藏
CocoaLumberjack
中的libA.a
符号,以便Xcode不会报告符号错误?
可以推荐的其他file logger
个库吗?
现在,我正在查看libA.a
中的符号,将其与CocoaLumberjack
的来源进行对比,我暂时无法找到所使用的CocoaLumberjack
libA.a
的版本,我的下一步应该只在我的项目中包含CocoaLumberjack
的头文件。它应该有效,但我不喜欢这种方式。
答案 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提供对象。