【发布时间】:2020-12-13 16:06:20
【问题描述】:
我们正在尝试将 .a 静态库文件集成到 React Native 项目中。在构建期间,我们遇到了一个错误,即发现一个符号(常量)在单个 .a 文件中声明了多次。
我们还尝试将其集成到普通的 Xcode 项目中,同时具有大致相同的构建配置。 Xcode 只会发出关于重复符号的警告,并且构建成功。
下面的屏幕截图显示了我们在 react-native 项目中使用的链接器标志。我们怀疑是来自其他必需的 react-native pod 的继承链接器标志导致了这个问题。有没有办法忽略这个错误或单独构建它们?
更新 #1
当我进一步调查时,我发现手动从Pods-{TARGET_NAME}.xcconfig 中的OTHER_LDFLAGS 中删除-ObjC 允许项目构建,但在运行时崩溃,因为RCTRootView 依赖于它。
【问题讨论】:
-
您是如何得到一个包含重复符号的
.a文件的?您能否提供任何步骤让其他人重现该问题? -
我们的解决方案提供商向我们提供了这个
.a文件,并希望我们能够集成到一个普通的ObjectiveC项目中。但我们真正需要的是把它集成到一个react-native项目中。 -
没有更多信息,我不确定我是否相信它有重复的符号(我不确定这是否可能,因为我希望它是一个错误,会阻止 .a 在第一名)。但是您的问题目前不包含足够的信息来调试 - 例如,完整的错误消息是什么?也许是静态库上
nm的输出?鉴于继承的链接器标志,您是否怀疑其中一个附加库是冲突的? -
@jtbandes 我附上了构建错误消息。请看一下,谢谢!
标签: objective-c xcode react-native clang ld