React Native 0.66 发布公告
今天,我们发布了 React Native v0.66,其中包含对 Android 12 和 iOS 15 的支持,以及修复和常规更新。
亮点
- 处理 Android 上父边界之外的视图上的点击事件
- Android 上新的蓝牙权限
- 更好地支持 Apple Silicon、Xcode 13 和 iOS 15
- Hermes 0.9.0
- 每日构建和“提交构建”版本
处理 Android 上父边界之外的子视图上的点击事件
感谢 @hsource 添加了对通过 overflow: visible
渲染在父视图边界之外的子元素的交互支持。这是一个常见的用例,并且使 Android 上的 React Native 更接近 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 发布问题 以获取更多详细信息
每日构建和“提交构建”版本
在我们最近的一篇 博客文章 中,我们分享了我们在 2021 年下半年目标之一是改进我们的发布流程,使其更快、更稳定。作为此工作的一部分,我们正在努力使 React Native 在主分支上更稳定,并减少在候选发布过程中发现的错误。
虽然我们已经发布了超过一年的 React Native 每日构建版本,但大多数项目尚未有效地使用这些版本。现在,它们更容易访问,我们希望将来将其用作候选发布版本。每日构建版本发布到 npm,并使用“nightly”标签。
为了改进测试单个提交的过程,React Native 的 CI 现在将为主分支和发布分支以及每个 PR 创建一个 tarball 工件。我们称它们为提交构建。这些提交构建不会发布到 npm,但可以从 CircleCI 直接下载。请参阅以下说明。
想要帮助合并 PR 吗?通过试用相关的提交构建并验证更改,您将提供宝贵的信号来帮助完成更改!
使用每日构建版本(每日构建)
将您的项目迁移到 React Native 每日构建版本的过程与升级到常规版本的过程非常相似,区别在于升级助手等工具目前不适用于每日构建版本。考虑到这一点,我们建议您首先将项目升级到最新的稳定版本(如果您尚未升级)。然后,运行 yarn upgrade react-native@nightly
以安装最新的每日构建版本。请注意,您的项目可能需要进行其他更改才能在每日构建版本上正常工作。
使用提交构建版本(提交构建)
与每日构建版本一样,首先确保您的项目已升级到最新的稳定版本。然后,转到 Circle CI 上的 react-native
仪表盘 并查找由相关提交触发的 Workflow。在那里,您应该会看到一个名为 build_npm_package
的作业。该作业将有一个“工件”面板,其中提供一个链接,您可以使用该链接下载 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 位贡献者** 贡献!感谢所有新老贡献者!您可以在此处找到 完整的更改日志。
此外,感谢以下贡献者为准备、测试和解除此版本的阻塞提供的支持!