跳到主要内容

发布 React Native 0.66

·阅读时长5分钟
Luna Wei
魏璐娜
Meta 软件工程师

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

亮点

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

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

pull request 中可以找到更多详细信息。

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 发布问题

夜间构建和“Commitly”发布

最近的一篇博文中,我们分享了 2021 年下半年的一个目标是改进我们的发布流程,使其更快、更稳定。作为这项工作的一部分,我们正努力提高 React Native 的 main 分支的稳定性,并减少在发布候选阶段发现的 bug。

虽然我们已经发布夜间构建的 React Native 一年多了,但大多数项目并未有效地使用这些发布。现在它们更容易访问,我们希望今后将它们用作发布候选版本。夜间构建通过“nightly”标签发布到 npm。

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

想帮助合并 PR 吗?通过试用相关的 commitly 并验证更改,您将为帮助该更改落地提供有价值的信号!

使用夜间构建 (Nightlies)

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

使用 Commitly 构建 (Commitlies)

Screenshot of CircleCI artifact panel to find tarball

找到与 commit 相关的“build_npm_package-1”作业,然后转到“Artifacts”面板下载 commitly 的 tarball。

与夜间构建一样,首先确保您的项目已升级到最新的稳定版本。然后,转到 Circle CI 上的 react-native 仪表板,并查找由相关 commit 触发的工作流。在那里,您应该会看到一个名为 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 位贡献者**!感谢我们所有新老贡献者!您可以在此处找到完整的更改日志。

此外,感谢以下贡献者在准备、测试和解除本次发布障碍方面提供的支持!