跳到主要内容

发布 React Native 0.66

·阅读时长5分钟
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 夜间版,但这些版本并没有被大多数项目有效使用。现在它们更容易访问,我们希望将来将它们用作发布候选版本。夜间版发布到 npm,标签为“nightly”。

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

想帮助合并 PR 吗?通过试用相关的每日版并验证更改,您将提供有价值的信号,帮助提交更改!

使用夜间版发布 (Nightlies)

将您的项目迁移到 React Native 夜间版发布的过程与升级到常规版本的过程非常相似,不同之处在于 Upgrade Helper 等工具目前不适用于夜间版。考虑到这一点,我们建议您如果尚未升级项目,请先升级到最新的稳定版。然后,运行 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 位贡献者!感谢所有新老贡献者!您可以在此处找到完整的变更日志

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