我需要在我的项目中使用JiraMobileConnect和Appcelerator框架。我猜 Appcelerator 框架在内部使用了与JiraMobileConnect相同的 CrashReporter,我得到了很多重复符号错误。
我看到 CrashReporter 框架在 PLCrashReporterNamespace.h 文件中有这个,
/*
* For external library integrators:
*
* Set this value to any valid C symbol prefix. This will automatically
* prepend the given prefix to all external symbols in the library.
*
* This may be used to avoid symbol conflicts between multiple libraries
* that may both incorporate PLCrashReporter.
*/
// #define PLCRASHREPORTER_PREFIX AcmeCo
#ifdef PLCRASHREPORTER_PREFIX
所以我在 Pods 下的 JiraConnect 目标中设置了一个预处理器宏PLCRASHREPORTER_PREFIX=EM
,但现在我得到一个未定义的符号错误。
我找到了这个SO Question,答案说
您需要使用相同的宏定义重新编译相应的框架(所有 .c 文件),以便它导出并使用修改后的符号名称。
那么除了下载PLCrashReporter源代码重新编译库之外还有什么办法吗?即使我这样做,有什么方法可以让它与 cocoapods 一起工作?我还发现有一个PLCrashReporter pod,所以我想一定有办法让所有这些冲突消失,而且我肯定不是第一个遇到这个确切或类似问题的人。如果有人可以在这里帮助我,我真的很感激。