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 版本問題以取得更多詳細資訊
每夜版和「Commitly」版本
在最近的部落格文章中,我們分享了 2021 年下半年的目標之一是改進我們的發佈流程,使其更快、更穩定。作為此工作的一部分,我們正在努力使 React Native 在 main 上更穩定,並減少在我們的候選發佈版本流程中發現的錯誤。
雖然我們發佈 React Native 的每夜版已超過一年,但這些版本尚未被大多數專案有效使用。它們現在更容易存取,我們希望將它們用作未來的候選發佈版本。每夜版以「nightly」標籤發佈到 npm。
為了改進測試個別提交的流程,React Native 的 CI 現在將為 main 和發佈分支上的每個提交以及每個 PR 建立 tarball 構件。我們將它們稱為 commitlies。這些 commitlies 不會發佈到 npm,但可以直接從 CircleCI 下載。請參閱以下指示。
想要協助合併 PR 嗎?透過試用相關的 commitly 並驗證變更,您將提供有價值的訊號,以協助變更落地!
使用每夜版(Nightlies)
將您的專案遷移到 React Native 每夜版的流程與升級到常規版本的流程非常相似,但升級助手等工具目前不適用於每夜版。考慮到這一點,我們建議您先將您的專案升級到最新的穩定版本(如果您尚未這樣做)。然後,執行 yarn upgrade react-native@nightly
以安裝最新的每夜版。請注意,您的專案可能需要其他變更才能在每夜版上正常運作。
使用 Commitly 版本(Commitlies)

尋找與提交相關的「build_npm_package-1」作業,並前往「Artifacts」面板以下載 commitly 的 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 位貢獻者!感謝所有新舊貢獻者!您可以在此處找到完整變更日誌。
此外,感謝以下貢獻者在準備、測試和解除封鎖此版本方面提供的支援!