跳到主要内容

宣布 React Native 0.66 版本发布

· 阅读需 5 分钟
Luna Wei
Luna Wei
Software Engineer @ Meta

今天我们发布了 React Native v0.66,支持 Android 12 和 iOS 15,同时修复了若干问题并进行了常规更新。

亮点

处理 Android 上父视图边界外子视图的点击事件

感谢 @hsource 添加了对通过 overflow: visible 渲染在父视图边界外的子视图交互支持。这是一个常见用例,使 React Native 在 Android 上的表现更贴近网页标准。

更多细节请查看该条 pull request

Android 新的蓝牙权限

我们新增了对Android 12 蓝牙权限的支持,计划在下一版本中将 targetSDKVersion 更新至 31。

更好的 Apple Silicon、Xcode 13 和 iOS 15 支持

本次发布带来了多种解决方案,使得在 Apple Silicon (M1) Mac 机器上使用 Xcode 构建 iOS 应用更加稳定可靠。

值得一提的是,新的应用模板现加入了 CocoaPods 相关的变通方案(感谢 @mikehardy!)。 使用时,请确保您的应用的 Podfile 在 post_install 阶段添加了 __apply_Xcode_12_5_M1_post_install_workaround(installer)

同时,RCT-Folly.podspec更新以防止 arm64 链接失败

请查阅我们之前发布的关于准备您的应用以支持 iOS 15 和 Android 12 的相关文章

Hermes 0.9.0

Hermes 0.9.0 主要缩小了 Hermes 版本发布节点与本次 React Native 版本之间的差距。

在大约 400 个提交中,除了常规的 bug 修复,还带来了内存和体积优化。

详情请见 Hermes 0.9.0 发布 issue

夜间构建版本和“Commitly”版本

在近期的博客文章中,我们提到 2021 年下半年目标之一是提升发布流程的速度和稳定性。作为此项工作的组成部分,我们致力于让 React Native 在主分支上更加稳定,减少 RC(Release Candidate)阶段发现的 bug。

虽然我们已经发布夜间版本(nightly)一年多了,但这些版本此前并未被大多数项目有效地利用。现在它们更易获取,我们希望未来将其用于发布候选版本。夜间版本通过 npm 的 “nightly” 标签发布。

为了提升单个提交的测试流程,React Native 的 CI 现会为主分支、发布分支及每个 PR 创建 tarball 工件,我们称之为 commitlies。这些 commitlies 不会发布到 npm,但可以直接从 CircleCI 下载。详情请看下方说明。

想协助 PR 合并吗?通过尝试相关的 commitly 并验证变更,您将提供宝贵信息,帮助变更顺利落地!

使用夜间构建版本 (Nightlies)

将项目迁移到 React Native 夜间版本的流程与升级到常规版本类似,唯一例外是类似 Upgrade Helper 这类工具目前不支持夜间版本。建议先将项目升级到最新稳定版本,再运行 yarn upgrade react-native@nightly 以安装最新版夜间版本。请注意,使用夜间版本时可能还需额外修改项目以确保正常运行。

使用 Commitly 版本 (Commitlies)

CircleCI 工件面板抓图示范如何找到 tarball

找到与提交相关的 "build_npm_package-1" 任务,进入 "Artifacts" 面板下载对应 commitly 的 tarball。

同样地,确保您的项目已升级至最新稳定版本。然后,访问 react-native 在 CircleCI 的仪表盘,查找由相关提交触发的工作流。找到名为 build_npm_package 的任务,该任务会有一个“Artifacts”面板,提供可用于下载 tarball 文件的链接。下载后可执行:

# 使用您的包管理器更新 react-native 依赖到 tarball 版本
$ yarn add <tarball 文件路径>
$ npm add <tarball 文件路径>

致谢

本次版本包含 621 次提交,由 92 位贡献者 共同完成!感谢所有新老贡献者的付出!完整更新日志请点击这里

同时感谢以下贡献者协助此次版本的准备、测试与障碍排查!