发布 React Native 0.66
今天我们发布 React Native v0.66,支持 Android 12 和 iOS 15,同时修复了一些问题并进行了常规更新。
亮点
- 处理 Android 上父视图边界外的视图点击
- Android 上的新蓝牙权限
- 更好地支持 Apple Silicon、Xcode 13 和 iOS 15
- Hermes 0.9.0
- 每晚和“Commitly”发布
处理 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)

查找与提交相关的“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 位贡献者!感谢所有新老贡献者!您可以在此处找到完整的变更日志。
此外,感谢以下贡献者在准备、测试和解除此版本方面的支持!
