发布 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
添加了对父视图边界之外渲染的子视图的交互支持。这是一个常见的用例,使 React Native 在 Android 上的行为更接近 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 每夜版的过程与升级到常规版本的过程非常相似,不同之处在于,升级助手等工具目前不适用于每夜版。考虑到这一点,如果您尚未将项目升级到最新的稳定版本,我们建议您首先进行升级。然后,运行 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 位贡献者共同完成!感谢所有新老贡献者!您可以在此处找到完整的变更日志。
此外,感谢以下贡献者在准备、测试和解除此版本阻塞方面的支持!