跳到主要内容

宣布 React Native 0.66

·阅读 5 分钟
Luna Wei
Luna Wei
Meta 软件工程师

今天我们发布了 React Native v0.66,支持 Android 12 和 iOS 15,并包含修复和常规更新。

亮点

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

感谢 @hsource 增加了通过 overflow: visible 实现的父视图边界外子视图交互支持。这是一个常见的用例,使 Android 上的 React Native 更符合 Web 标准。

此拉取请求中查看更多详情。

Android 上的新蓝牙权限

我们增加了对 新蓝牙权限 的支持,为 Android 12 做准备,并计划在下个版本中将 targetSDKVersion 更新到 31。

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

此版本提供了多项解决方案,使在 Apple Silicon (M1) Mac 机器上针对 iOS 的 Xcode 构建更可靠。

值得注意的是,新的应用模板现在包含一个 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 次提交中,包含了常规错误修复以及内存和大小方面的改进。

有关更多详情,请参见 Hermes 0.9.0 发布问题

夜间版和“提交版”发布

最近的一篇博客文章中,我们提到 2021 年下半年的目标之一是改进发布流程,使其更快、更稳定。作为这项工作的一部分,我们正努力使 React Native 在主分支上更加稳定,并减少在发布候选版本过程中发现的错误。

虽然我们发布 React Native 的夜间版本已超过一年,但这些版本尚未被大多数项目有效利用。现在它们更容易访问,我们希望将来能将它们用作发布候选版本。夜间版本以“nightly”标签发布到 npm。

为了改进测试单个提交的过程,React Native 的 CI 现在将为主分支和发布分支上的每个提交以及每个 PR 创建一个 tarball 工件。我们将它们称为“提交版”。这些提交版不会发布到 npm,但可以直接从 CircleCI 下载。请参见下面的说明。

想帮助合并一个 PR 吗?通过试用相关的提交版并验证更改,您将提供宝贵的信号,帮助更改落地!

使用夜间版发布 (Nightlies)

将项目迁移到 React Native 夜间版本的流程与升级到常规版本非常相似,但像升级助手这样的工具目前不适用于夜间版。考虑到这一点,如果您尚未进行升级,我们建议您首先将项目升级到最新的稳定版本。然后,运行 yarn upgrade react-native@nightly 安装最新的夜间版本。请注意,您的项目可能需要进行额外的更改才能在夜间版本上正常运行。

使用提交版发布 (Commitlies)

Screenshot of CircleCI artifact panel to find tarball

找到与提交相关的 "build_npm_package-1" 作业,并前往 "Artifacts" 面板下载该提交版的 tarball 文件。

与夜间版本一样,首先请确保您的项目已升级到最新的稳定版本。然后,访问 Circle CI 上的 react-native 控制面板,查找由相关提交触发的工作流。在那里,您应该会看到一个名为 build_npm_package 的作业。该作业将有一个“Artifacts”面板,其中会提供一个链接,您可以使用该链接下载 tarball 文件。然后您可以运行以下命令:

# Update your react-native dependency to the tarball
# using your preferred package manager
$ yarn add <path to tarball>
$ npm add <path to tarball>

致谢

此版本包含 621 次提交,由 92 位贡献者完成!感谢所有新老贡献者!您可以在此处找到完整的变更日志。

同时,感谢以下贡献者在准备、测试和解除此版本阻碍方面的支持!