我正在改进一款旧的React-Native应用程序(自2018年以来没有更新),将其迁移到最新版本。我从react-native
0.59迁移到了最新的0.64。
为此,我得到了react-native migration help tool的帮助。
我还必须更新我的依赖项,以使用auto-link和cocoa pods。我在移动端和React Native方面相对较新(我的背景是纯React Web开发),因此可能会有一些显而易见的问题我忽略了。
但是,虽然Android在我的Mac上编译并成功运行,但我无法使iOS编译工作。
正如标题所说,我遇到了以下错误:
Undefined symbols for architecture x86_64: "_RCTSetLogFunction", referenced from: -[MetronomeWalletTests testRendersWelcomeScreen] in MetronomeWalletTests.o ld: symbol(s) not found for architecture x86_64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
这发生在测试项目中,而不是主项目中(或者它被称为其他什么名称)。
我尝试过的事情
- 我在“目标”部分中为主项目和测试项目启用了死代码剥离,因为这个问题建议这样做,包括调试和发布模式。
- 我也尝试禁用同样的设置,如此建议
- 我尝试了清理和重新构建
- 我尝试将
Javascript.framework
添加到链接库中
如果我理解正确,这个错误发生在“Link {projectName}Tests (x86_64)”阶段。
这些都没有起作用。我已经没有更多的想法了。
环境:
- Mac pro,版本为Big Sur 11.3.1(我对Mac也比较陌生,请告诉我是否有遗漏)
- RN版本:
0.64.2
- Xcode版本:
12.5.1