在混合应用程序中将React Native从0.39.0升级到0.42.3

在Tido,我们以一种非典型的方式使用React Native。 它最初是一个纯iOS应用程序(Swift + Objective-C),然后我们慢慢开始将React Native组件嵌入现有视图中。 结果,我们的项目结构是非标准的-意味着我们没有典型的/ ios/ android文件夹,并且某些自动化工具(例如:react-native-git-upgrade)可能永远无法使用我们的项目。 因此,我们继续进行“手动升级”。

快进了4个痛苦的日子,我们终于成功了(星期五下午4点!)。

有关此过程的信息很少,特别是对于非标准项目。 尝试了很多事情。 我们经历了每个GitHub问题和每个似乎与远程相关的StackOverflow问题。 没有成功 但是,我们认为我们设法简化了升级所需的步骤。 而且我们已经成功地重复了几次该过程。 希望这可以对某人有所帮助。

注意:当我们第一次将React Native集成到项目中时,完全有可能“奇怪”地进行设置。 可能导致不必要的痛苦。 我们欢迎任何意见/建议/建议!

1.清理您的节点依赖项

我们发现rm -rf ./node_modules可以解决很多问题,因此我们从这里开始。

2.清理您的构建文件夹

这里主要学习 在任何情况下,都不要在升级过程中信任Xcode缓存。 在很多情况下,我们认为它可以正常工作,只是清理了构建文件夹,并在后续构建中出现了故障。 Xcode中的快捷方式是Option-Shift-Command-K

3.关闭Xcode。

当对外部文件更改做出反应时,Xcode似乎并没有表现出一致的行为。 因此在关闭Xcode的情况下更改文件似乎更安全。

4.手动编辑您的节点依赖性

我们手动执行此操作,以便可以创建一个真正干净的node_modules目录。 更新您的package.json以使用react-native@0.42.3

5.重新安装您的节点依赖项

npm install

6.编辑Podfile以包括桥接到本机的依赖项

在下面的Podfile摘录中,我们必须添加第Podfile行:

10.将React添加到方案中的构建步骤

打开Product菜单,转到Scheme -> Manage Schemes然后双击所需的项目目标。

选择Build方案,并将React.framework步骤添加到方案中作为第一项,然后取消选中Parallelize builds

11.修复本地引用(即:使用引号将导入转换为使用尖括号)。

在我们的案例中,我们需要在“ bridge”文件中进行更改(即:声明用于在Native / RN之间进行通信的方法的位置)。

我们必须将#import "RCTBridgeModule.h"更改为#import

完成所有这些之后,您应该能够成功构建! 如果没有,我们非常抱歉。

大喊安妮塔·扎普拉(Anda Clarke)和安迪·克拉克(Andy Clarke)坚持不懈地经历了这个痛苦的过程。