Flutter 1.12.13 發行說明
歡迎來到 Flutter 1.12,這是我們迄今為止最大的穩定版本!在此版本中,我們合併了來自 188 位貢獻者的 1,905 個 Pull Request,包括來自 Google 內部和外部的貢獻者!請參閱下表瞭解每個版本中的 PR 數量。在過去的一年中,每個版本的 PR 數量都在增長(Flutter 1.9 除外,它是一個特殊的版本,用於支援 Catalina)。在最新的 GitHub Octoverse 報告中,Flutter 被列為 GitHub 上最活躍的 3 個倉庫之一!
隨著假期的臨近,我們想對我們這些信任 Flutter、推廣 Flutter 併為 Flutter 做出貢獻的了不起的開發者社群表示最誠摯的感謝。這對我們所有人來說都是非凡的一年!我們期待著在未來幾年與您合作。
一如既往,您可以在下方找到有趣的 PR。此版本中有許多值得關注的新功能,包括:
- 一些破壞性的 API 更改
- 一些被捕獲並修復的嚴重問題
- Web 支援現已在 Beta 版頻道中提供
- macOS 支援已在 1.13 版本中於開發版頻道啟用
- 改進的 SDK,可將 Flutter 新增到現有的 Android/iOS 應用
- iOS 13 視覺重新整理,包括對 iOS 黑暗模式的支援
- 增強的工具體驗
- 新控制元件和功能
- 等等!
破壞性變更
#總的來說,我們希望避免在 Flutter、其外掛或其包中引入破壞性更改。然而,當我們需要使我們的 API 更直觀時,這有時是不可避免的。我們實施了一個新流程,邀請您提交測試以幫助我們檢測破壞性更改。有關更多資訊,請參閱 Ian Hickson 在 flutter-announce 上的這篇帖子,以及 Flutter wiki 上的破壞性更改策略。
以下列表包含此版本中的破壞性更改。請參閱相關公告,以便您可以繼續進行您的程式碼。
37024 使用 SliverLayoutBuilder 實現 PageView,棄用 RenderSliverFillViewport
37739 修復 repeat(reverse: true) 和 animateWith 的 AnimationStatus
37896 為 MouseRegion 新增不透明度控制。為 Layer 新增 findAnnotations。
39919 CupertinoDatePicker & CupertinoTimerPicker 黑暗模式
40566 刪除 CupertinoSystemColors,改用 CupertinoColors
40690 CupertinoPageScaffold 黑暗模式
41220 向使用 InkWell 的控制元件新增 ActivateAction。
41857 更改暗色主題的elevation overlay,使其使用 colorScheme.onSurface
42449 將 TextField 的最小高度從 40 增加到 48
42479 使 DropdownButton 的 disabledHint 和 hint 行為一致
嚴重崩潰和效能 bug
#在每個穩定版本中,我們都致力於提高 Flutter 的質量。在 1.12 版本中,我們修復了幾個嚴重問題;這包括以下崩潰和效能問題。
40009 向 _IndicatorPainter._tabOffsetsEqual() 新增空值檢查以防止崩潰
40263 修復 flutter doctor 中 vswhere 搜尋時的崩潰
40786 修復缺失安裝時的 vswhere 查詢崩潰
42342 修復 DropdownButton 同時定義 hint 和 selectedItemBuilder 時的崩潰
44610 createState 斷言的錯誤訊息
38814 新增 iOS backdrop filter 基準測試
38821 快取游標引數
38861 將已棄用的 onReportTimings 替換為 frameTimings
39439 測量 iOS CPU/GPU 百分比
43676 允許多個 TimingsCallbacks
45050 為 picture raster cache 新增效能測試
新功能
#Flutter 1.12 引入了多項新功能,包括 SliverOpacity 控制元件、SliverAnimatedList,以及為 SliverAppBar 配置拉伸效果的能力。
37416 新增 MediaQuery.systemGestureInsets 以支援 Android Q
39857 更新 ToggleButtons 約束預設值並新增新的約束引數
40161 在 PageRouteBuilder 中新增 fullscreenDialog 引數
40461 實現 DropdownButton.selectedItemBuilder
41415 公開用於調整影像快取大小的 API
42250 SliverAppBar - 可配置的過滾動拉伸和回撥功能 & FlexibleSpaceBar 支援
42485 重新發布 SliverAnimatedList。
42842 向 "showDialog" 和 "showGeneralDialog" 新增 "navigator" 選項
43286 FadeInImage 支援 cacheWidth 和 cacheHeight
44289 SliverOpacity
45127 SliverIgnorePointer
45432 使用 RenderSliverPadding 為 SliverFillViewport 新增內邊距
iOS 支援
#iOS 仍然是 Flutter 的一個重要投資領域。在此版本中,我們對 Cupertino 庫進行了視覺重新整理,以匹配 iOS 13 的外觀。我們現在在 Cupertino 控制元件中支援黑暗模式,添加了兩個新控制元件 CupertinoContextMenu 和 CupertinoSlidingSegmentedControl,並對分段控制元件、CupertinoAlertDialog 和 CupertinoDatePicker 進行了改進。
36871 審計 defaultTargetPlatform 的使用
37719 CupertinoDynamicColor 及相關類
38712 iOS 安裝失敗時顯示程序錯誤
39056 修復了背景顏色相關的問題 #34741
39215 CupertinoActionSheet 黑暗模式和精度
39289 CupertinoActivityIndicator & CupertinoApp 黑暗模式
39430 使 CupertinoDynamicColor 可以常量構造
39463 更新驗證以支援 Xcode11 版本
39585 刪除 iOS/USB 偽像的回退程式碼
39590 修復 CupertinoPageRoute 中的使用者手勢
39765 CupertinoButton & 底部標籤欄黑暗模式
39927 當傳入 null 時,使 CupertinoDynamicColor.resolve 返回 null
40007 CupertinoAlertDialog 黑暗模式 & CupertinoActionSheet 精度
40100 修復在選項卡模板中處理焦點節點時的相關問題
40189 黑暗模式 CupertinoNavigationBar
40447 為 flutter run 實現 mdns
40454 黑暗模式 R: 重新整理控制元件
40466 ModalRoutes 在 (cupertino) 彈出過渡進行時忽略輸入
40864 將 iOS 和 Android 的 gitignore 規則移至資料夾
41326 在 TextField 中選擇時發生異常
41355 修復不良縮排(主要在集合字面量周圍)
41384 [flutter_tools] 向分析報告 iOS mDNS 查詢失敗
41431 Cupertino { TabScafold, TextSelection, TextField } 黑暗模式 & 次要精度更新
41473 缺失的尾隨逗號
41482 [flutter_tool] 新增 iOS-mdns 回退成功/失敗的分析事件
41644 正確縮排函式引數
41799 改進的 iOS 13 捲軸精度
41828 在外掛模板中設定 DEFINES_MODULE=YES
41892 修復 CupertinoActivityIndicator 半徑
42025 本地化重新整理
42032 更新 CupertinoActivityIndicator 顏色和漸變
42533 為文字欄位停用箭頭鍵焦點導航
42550 向 TextField 和 TextFormField 新增 enableSuggestions 標誌
42563 為 CupertinoSlider 新增滑塊顏色自定義功能
42602 當 CupertinoPageRoute 的路由構建器返回 null 時,正確丟擲 FlutterError
42775 CupertinoSlidingSegmentedControl
42790 以不同的方式停用文字欄位中的向上/向下箭頭焦點導航。
42924 CupertinoDialogAction 缺少 super 呼叫
42964 使用 buildSettings 中的 PRODUCT_BUNDLE_IDENTIFIER 來查詢 iOS 上正確的 bundle ID,當使用 flavors 時
42967 使用 MediaQuery viewInsets 填充 CupertinoAlertDialog
43918 CupertinoContextMenu (iOS 13)
43932 更新 CupertinoSlidingSegmentedControl 控制元件/反饋機制
44149 在 CupertinoDatePicker 日期模式中應用 minimumDate & maximumDate 約束
44391 分段控制元件快速雙擊修復
44551 刪除新的未使用的元素
44743 對本地化生成輸出進行排序
44870 新增 -runFirstLaunch 提示文字
45124 分析 dartpad
11350 Firebase 測試 iOS 平臺檢視
11390 preventDefault on touchend 以顯示 iOS 鍵盤
11413 iOS 模擬器單元測試似乎沒有考慮整個編譯單元
11530 建立 iOS 框架時可選地剝離 bitcode
11652 iOS 平臺檢視突變 XCUITests
11802 調整 iOS 幀開始時間以匹配平臺資訊
11807 修復 iOS 上的泰語母音刪除錯誤
11817 針對 iOS 不規則輸入事件的傳遞進行平滑處理
11886 在 iOS 嵌入式引擎中移除多餘的冗餘通道設定
12078 分別管理 iOS 上下文
12084 將與使用者通知相關的方法的可用性限制為 iOS 10.0
12192 在 iOS 上更新文字欄位位置,作為拼寫檢查的預備工作
12295 問題 13238:在 iOS 上,噹噹前方向不允許時,強制更改方向
12404 支援 iOS 開關上的可訪問性標籤。
12990 修復 iOS 上的 a11y 崩潰
13029 iOS 的最小測試工具
13051 不要為 Metal 構建而提升 iOS 部署目標。
13093 iOS 平臺檢視:修復了觀察者的過度釋放。
13170 問題 13238:在 iOS 上,噹噹前方向不允許時,強制更改方向
13449 修復了當多個平臺檢視在場景中時 iOS 崩潰
13469 修復 iOS 上過期的平臺檢視 gr 上下文
13651 修復了 iOS 橫向可訪問性滾動事件的滾動方向。
13852 在 iOS insertText 時不預設為下游親和性
13857 防禦性程式設計,防止因引用死的可訪問性橋而在 iOS 上出現孤立的語義物件
1370 [camera] 暫停/恢復 Android & iOS 的影片錄製
1999 [Connectivity] 新增一個方法以在 iOS 上請求位置(適用於 iOS 13)
2052 [instrumentation_adapter] 新增存根 iOS 實現和示例應用程式
2068 [google_maps_flutter] 修復 iOS MyLocationButton 在 iOS 上的問題
2083 [image_picker] 修復了在 iOS 13 及更高版本中選擇影片時的崩潰。
2131 [share]修復在設定 subject 為 null 時 iOS 崩潰
2139 [google_maps_flutter] 為減少 iOS 警告新增 NonNull 宏
2191 [image_picker] 修復 iOS 構建和分析器警告
2192 [in_app_purchase] 修復 iOS 構建警告
2275 更新 Cirrus 以在 13.2 和 Xcode 11 上建立 IOS 模擬器
2281 [connectivity] 修復 iOS 的可達性流
Android
#在此版本中,我們合併了一系列更改以支援 Android 10,包括新的活動縮放過渡。
37526 捕獲 Gradle 更新期間的錯誤
39126 在 Gradle 3.5 中修復應用捆綁包
39145 在 Gradle 包裝器目錄中新增缺失的檔案
39312 讓 flutter 構建的 aar 使用本地引擎
39457 在 build apk 和 appbundle 中記錄標誌
40640 從 Gradle 構建中排除非 Android 外掛
41698 下載 Android x64 release artifacts
41933 上傳 x64 Android host release
41935 [Android 10] Activity 縮放過渡
41946 在構建 appbundle 時不驗證 Android SDK
42378 從 flutter.gradle 中移除 println
42401 為 Flutter 新增對 Android x86_64 ABI 的支援
42508 新增 Android x64 profile artifacts
42966 擴充套件重新丟擲的 Gradle 錯誤範圍
43245 在 Android manifest 模板的 android:configChanges 中新增 smallestScreenSize
43282 針對 Android 目標平臺實現使用 assemble 進行 AOT 構建
43876 重構 flutter.gradle 以直接使用 assemble
44534 透過併發執行 gen_snapshot 來提高 APK 構建效能(約 50%)
45139 更新 Android CPU 裝置檢測
11345 [Android] 將使用 PlatformViews 所需的 MINIMAL_SDK 寫入異常訊息
11441 Android 10+ View.setSystemGestureExclusionRects
11451 Android 10+ View.getSystemGestureExclusionRects
12085 在 Android Q 上啟用平臺檢視鍵盤輸入
13059 Android 目標建立最終 zip artifacts
13099 NO_SUGGESTIONS 鍵盤標誌在 Android 中
13262 在 Android 上添加了語義標題支援。
2003 [video_player] 添加了 formatHint 以覆蓋 Android 上的影片格式
2029 修復了在 API 低於 24 的情況下暫停或恢復影片時的 Android 崩潰。
2049 [path_provider] Android: 支援多個外部儲存選項
2208 刪除所有 example/android/app/gradle.properties 檔案
2216 [battery] 使用 android.arch.lifecycle 而不是 androidx.lifecycle:lifecycle 在
2239 [camera] Android: 透過建立請求套件提高影像流傳輸效率…
新增到 App 功能
#我們對“新增到 App”功能進行了重大升級,該功能允許您將 Flutter 模組整合到 Android 或 iOS 應用中。迫不及待想試試?請檢視新增到 App 的文件。
41666 使用新的 Android 嵌入器生成專案
44369 翻轉 enable-android-embedding-v2 標誌
40810 當發生 AndroidX 故障時重新啟用 AAR 外掛
41820 添加了 SystemNavigator.pop "animated" 引數。
12752 允許使用者選擇 SystemNavigator.pop 是否在 iOS 上設定為動畫。
12069 將 FlutterMain 的呼叫摺疊到 FlutterEngine 建構函式中
39945 添加了新的生命週期狀態
11913 添加了新的生命週期列舉
45115 修復 ios_add2app_life_cycle 許可證
45133 重新發布生命週期列舉並修復 scheduleforcedframe
45430 暫時取消 detached 訊息,直到我們能妥善處理它
9525 Android Embedding Refactor PR36: 新增啟動螢幕支援。
9506 同步主執行緒和 GPU 執行緒以進行第一次渲染幀
39600 讓 Material BackButton 擁有自定義的 onPressed 處理程式
9952 iOS:修復了第一個幀的回撥,使其不依賴於啟動螢幕。
10145 添加了測試第一個幀回撥是否被呼叫的整合測試
42708 測試 Android 嵌入器 v2
43221 將示例遷移到 Android 嵌入器 v2
9895 Android Embedding PR37: 透過 FlutterActivityAndFragmentDelegate 分離了 FlutterActivity 和 FlutterFragment
11890 新增一些 AppLifecycleTests
12128 當 FlutterViewController 不可見時,使其停止傳送 inactive/pause 生命週期事件
12232 FlutterViewController 通知將在 dealloc 時傳送
13280 Android 嵌入器 API 更新以支援外掛生態系統
13349 將 DartExecutor 棄用為 BinaryMessenger,並添加了 getBinaryMessenger() 方法。(#43202)
13432 在分離時釋放 shim 繫結
2232 [multiple] V2 嵌入器外掛使用 compileOnly
1323 [firebase_core][firebase_analytics] 修復了傳遞式生命週期依賴項的 bug
13445 如果沒有 FlutterView,則忽略 onConfigurationChanged
44499 當模組使用僅 v1 外掛時顯示警告
35100 新增對平臺到框架的 'TextInput.clearClient' 訊息的處理。(#35054)
13474 在 Android 上建立文字輸入外掛時請求重新附加
43959 響應 TextInputClient.reattach 訊息。
509 在執行測試前強制開啟手機螢幕。
11792 開始記錄丟棄平臺訊息的警告。
12167 通道緩衝區
40165 通道緩衝區
12402 調整通道緩衝區大小
6879 允許在未初始化引擎的情況下釋放 FlutterViewController
9329 透過意外的隱式 self 保留修復了記憶體洩漏
9347 代理二進位制訊息
9419 有一個二進位制訊息
8387 將資源上下文設為 iOS 上的主上下文
11798 使用單獨的 IOSGLContext 物件管理資源和 onscreen 上下文
12277 使用單獨的 IOSGLContext 物件管理資源和 onscreen 上下文
13396 在檢視控制器被刪除時清理 GL 資源。
39157 使用 Gradle 的新 Maven 偽件
39503 從新增到 App 的流程中移除 bitcode=NO
36793 將 Flutter 模組 App.framework 作為本地 CocoaPod pod 提供,由宿主應用程式安裝
37966 在 flutter clean 期間移除臨時目錄
40302 為 FlutterPluginRegistrant 設定 DEFINES_MODULE 以生成 modulemap
37731 新增元資料以指示宿主應用程式是否包含 Flutter 模組
36805 允許宿主應用程式中的 flavors 和自定義構建型別
26630 將 flutter_assets 移至 App.framework
31463 停用所有 Dart 指紋識別器
35217 新增 flutter build aar
40927 使模組 pod 標頭檔案公開
44065 構建 iOS 框架
37206 測試由 AAR 構建的模組是否包含正確的 assets 和 artifacts
44127 構建 aar 時列印如何使用這些 artifacts 的說明
23782 將 flutter_shared assets 新增到模組 artifact
22707 Gradle 外掛支援將 flutter 新增為另一個 Android 應用的子專案
9893 將 FlutterAppDelegate 中的邏輯移至 FlutterPluginAppLifeCycleDelegate
9922 分離生命週期協議
44026 如果外掛僅支援 embedding v2 但應用不支援,則退出工具
44214 修復外掛的 v1 嵌入器支援啟發式
43994 flutter build aar 也應將外掛構建為 AAR
13455 自動註冊 FlutterEngine 中的外掛。(#43855)
44011 將外掛註冊器移至 io.flutter.plugins 並新增 @Keep 註釋…
44166 在 v2 外掛模板中新增 v1 外掛註冊函式
13394 移除多路複用的 Flutter Android 生命週期。(#43663)
45557 在生成的外掛檔案中添加註釋
45379 在專案中新增 .flutter-plugins-dependencies,其中包含應用程式的外掛依賴圖
3850 支援在單個專案中同時編輯 Flutter 和 Android
4097 支援在 Android Studio 中除錯新增到 App 的模組
4129 最佳化新增到 App 支援的粗糙之處
4062 重新啟用新增到 App 專案的附加按鈕
4004 編輯在 Android Studio 中建立的模組
33297 儀器化新增到 App 的流程
33458 新增到 App 的測量
34189 儀器化 include_flutter.groovy 和 xcode_backend.sh 的使用
13289 重新啟動 Engine 時記住上次使用的入口點。
12370 添加了預設入口點變數以匹配 Android 語法。
10823 為引擎公開 isolateId
13264 重新啟動 Engine 時記住上次使用的入口點。
13789 將最近的包新增到 javadoc 列表
10481 Android 嵌入器重構 pr40 新增靜態引擎快取
29946 讓 CupertinoPageScaffold 點選狀態列以滾動到頂部
12587 將處理狀態列觸控的邏輯分離到自己的函式中
44638 新增用於建立模板幫助文字的模組
9351 Android Embedding Refactor PR32: 清理新嵌入器中的日誌。
6447 iOS 嵌入器重構
41794 更新了 SystemNavigator.pop 的文件字串。
9304 使用匹配的 UIKit 棄用裝飾 UIApplicationDelegate 包裝器
266 [firebase_performance] 支援 v2 Android 嵌入器
274 [firebase_core] v2 嵌入器 API
275 [firebase_ml_vision] v2 嵌入器 API
282 [firebase_remote_config] 支援 v2 Android 嵌入器。
287 [firebase_database] 支援 v2 Android 嵌入器。
1266 [firebase_analytics] 支援 Android v2 嵌入器
1295 [firebase_storage] 支援 Android v2 嵌入器
1369 升級 in-app-messaging 到外掛 API v2
1370 升級 crashlytics 到 v2 外掛 API
1372 [firebase_dynamic_links] 支援 v2 嵌入器
2142 [Connectivity] 遷移到新的 Android 嵌入器
2152 [battery] 支援 v2 Android 嵌入器
2155 [in_app_purchase] 遷移到 v2 Android 嵌入器
2156 [Share] 支援 v2 Android 嵌入器。
2157 [url_launcher] 遷移到新的嵌入器
2160 [package_info] 支援 v2 Android 嵌入器(帶 e2e 測試)
2162 [shared_preferences] 支援 v2 Android 嵌入器。
2163 [device_info] 支援 v2 Android 嵌入器。
2164 [sensor] 支援 v2 Android 嵌入器。
2165 [camera] 遷移到新的嵌入器
2167 [quick_actions] 支援 v2 Android 嵌入器。
2169 [flutter_webview] 遷移到新的嵌入器
2193 [android_alarm_manager] 遷移到 V2 Android 嵌入器
2195 [android_intent] 清理 V2 遷移
2196 [webview_flutter] (瑣碎) 新增 V2 警告
2200 [flutter_webview] 恢復 v2 嵌入器支援
2204 [url_launcher] 重新登陸 v2 嵌入器支援
2209 [webview_flutter] 重新登陸支援 v2 嵌入器支援
2226 [video_player] 新增 v2 嵌入器支援
2241 [Shared_preferences]抑制警告
2284 [path_provider] 為新增 v2 嵌入器支援
2327 [android_alarm_manager] 將最低 Flutter 版本更新到 1.12.0
43461 修復了 Swift 整合測試中可選型別的使用。
13423 自動銷燬由 FlutterActivity 或 FlutterFragment 建立的 FlutterEngine。
42958 停用整合測試和新增到 App 模板的 bitcode
13428 在連結時為 darwin dylibs 設定安裝名稱
41333 合併新增到 App 中的 Flutter 資源
39747 修復 Gradle 中的型別不匹配
39986 預設在 release 模式下啟用 Proguard
40181 更新 Kotlin 和 Gradle 版本
40282 翻轉 proguard 的預設值
40440 重新命名 useProguard 方法,以免 Gradle 混淆
40453 啟用 R8
40610 啟用資源壓縮器
40900 停止使用 Gradle 的已棄用功能
40925 預設在新專案中使用 AndroidX
41142 將嵌入器作為 API 依賴項新增,而不是僅編譯依賴項
41251 將示例和測試遷移到 AndroidX
41254 測試 flutter 資源是否包含在 APK 中
41885 在外掛中包含嵌入器傳遞依賴項
41942 使用 mergeResourcesProvider 而不是已棄用的 mergeResources
42022 修復了煙霧測試
42306 確保 flutter 資源已複製到 AAR 中
42352 向 abstract_method_smoke_test 新增 android.permission.WAKE_LOCK 許可權
42360 為新的 Android 嵌入器新增煙霧測試
42548 當應用未使用 AndroidX 時,顯示訊息並記錄事件
42684 在讀取現有 pro…時移除 isNewAndroidEmbeddingEnabled 標誌
42709 在 Windows 上測試 Gradle
42981 移除 GeneratedPluginRegistrant.java
43187 確保 android.enableR8 被追加到新行
43479 重構 gradle.dart
43669 如果 AndroidManifest.xml 不存在,則不讀取它
43674 新增缺失的匯入
43675 修復裝置實驗室測試
43927 修復 stdout 測試
43941 gradle.dart 重構後的調整
44301 在將外掛構建為 AAR 時,不列印如何使用 AAR
44243 使用本地引擎構建本地 Maven 儲存庫
44302 在 debug 模式下構建本地引擎時,不新增 x86 或 x64
44637 附加程式會檢視未來的 observatory URIs
44783 將 ProcessException 轉發給錯誤處理程式
44797 預設構建所有構建變體的 AAR
45439 如果 mdns 返回 null,則回退到協議發現
45579 為傳遞式外掛依賴項新增整合測試
45743 Android 日誌讀取器讀取任何最近的日誌
45937 處理 lastLogcatTimestamp 為 null 的情況
46040 在 beta、dev 和 stable 頻道中啟用 Android 嵌入器 v2
46101 移除 flutterBuildPluginAsAarFeature 標誌
14136 擴充套件了我們的 scenario_app 文件。
14094 開始指定執行測試的作業系統版本。
13421 FlutterAppDelegate: 添加了空生命週期方法
13073 從通知中心移除了保留週期。
13006 重構:FlutterDartProject
44782 更新了 flutter/examples 以更好地符合新的嵌入器:移除了對 FlutterApplication 的引用,刪除了所有不必要的 MainActivity,移除了所有對 GeneratedPluginRegistrant 的直接呼叫。(#22529)
45740 在 flutter build ios-framework 期間不刪除輸出目錄
45560 在 iOS 上始終使用 isysroot 進行編譯,指向 SDK 根目錄
45436 在 iOS 上始終使用 -isysroot 標誌進行編譯,指向 SDK 根目錄
45189 移除 chmod 以使 Flutter 框架標頭檔案不可寫
45136 移除 FLUTTER_DEVICELAB_XCODE_PROVISIONING_CONFIG 程式碼路徑
44633 為整合測試和新增到 App 模板啟用 bitcode
44625 在長時間執行的 build ios framework 期間釋放啟動鎖
44324 在外掛模板 podspec 中新增 swift_versions,包含預設的 CocoaPod 版本
43915 觀察 iOS 13 上的 VM 服務日誌記錄
43553 將環境變數傳遞給 xcodebuild
42872 從使用庫的 Podfiles 中移除 use_modular_headers
42808 在 platform_view_ios__start_up 測試中,在 pod install 之前執行 flutter pub get
42254 將最低版本更新到 Xcode 10.2
42204 在預設 Podfile 中新增 use_modular_headers!
42029 始終從 Xcode 配置嵌入 iOS Flutter.framework 構建模式版本
41882 將模板 Swift 版本從 4 提高到 5
41491 如果版本 >= 1.8.0,則跳過 pod 初始化。
40792 將構建資訊檢查從生成檔案移至 Xcode 構建
40611 當 iOS 上的構建號和版本無法解析時發出警告
40401 使 FlutterPluginRegistrant 成為靜態框架,以便新增到 App 可以使用靜態框架外掛
40174 保持 Flutter.framework 二進位制檔案可寫,以便可以進行程式碼簽名
40117 在提示文字中顯示過期的 CocoaPods 版本
39539 保持 Flutter.framework 二進位制檔案可寫,以便可以進行程式碼簽名
39509 跳過失敗的 add2app 測試以解除阻塞滾動
38992 在 flutter clean 期間清理 Xcode 工作區
38905 在 Profile 和 Release 模式下,從 SUPPORTED_PLATFORMS 中移除 iphonesimulator
11357 重新命名第一個幀方法並通知 FlutterActivity 已完全繪製 (#38714 #36796)。
11844 透過刪除不必要的方法更新了 scenario app 中的 API 用法。
11902 移除未使用的 FragmentActivity 匯入語句以促進 proguard。
12305 引入 flutterfragmentactivity
12328 向 FlutterActivity 和 FlutterFragmentActivity 添加了 javadoc 註釋。
12359 將 Flutter View 轉發到平臺檢視,並在需要時分離。
12362 修復了內部報告的競態條件。
12806 將初始化移至 FlutterEngine
12987 添加了 FlutterActivity 和 FlutterFragment 的 hook 以 cleanUpFlutterEngine(),作為 configureFlutterEngine() 的對稱操作。(#41943)
13214 在 FlutterFragmentActivity 中將 Activity 結果轉發到 FlutterFragment。
13215 為新的 Android 嵌入器添加了暗模式支援(之前不小心遺漏了)。
13402 將 ActivityAware 和 ServiceAware 的生命週期轉換為不透明物件 (#43670)
13660 修復了啟動螢幕查詢。(#44131)
13698 修復了外掛註冊器的反射路徑。(#44161)
13738 刪除了新嵌入器的危險實驗性警告。(#44314)
13739 將舊外掛註冊訪問器指向新的嵌入器外掛訪問器。(#44225)
13743 從外掛繫結公開資源查詢。(#42019)
13855 在 FlutterShellArgs 中添加了對 --dart-flags 的支援。(#44855)
13932 從所有清單元資料查詢中移除了 GET_ACTIVITIES 標誌。(#38891)
2087 [android_alarm_manager] 更新並遷移 iOS 示例專案
2088 [android_intent] 更新並遷移 iOS 示例專案
2089 [battery] 更新並遷移 iOS 示例專案
2090 [camera] 更新並遷移 iOS 示例專案
2091 [connectivity] 更新並遷移 iOS 示例專案
2092 [device_info] 更新並遷移 iOS 示例專案
2093 [google_maps_flutter] 更新並遷移 iOS 示例專案
2094 [google_sign_in] 更新並遷移 iOS 示例專案
2095 [image_picker] 更新並遷移 iOS 示例專案
2096 [in_app_purchase] 更新並遷移 iOS 示例專案
2097 [local_auth] 更新並遷移 iOS 示例專案
2098 [package_info] 更新並遷移 iOS 示例專案
2099 [path_provider] 更新並遷移 iOS 示例專案
2100 [quick_actions] 更新並遷移 iOS 示例專案
2101 [sensors] 更新並遷移 iOS 示例專案
2102 [share] 更新並遷移 iOS 示例專案
2103 [shared_preferences] 更新並遷移 iOS 示例專案
2109 [url_launcher] 更新並遷移 iOS 示例專案
2110 [video_player] 更新並遷移 iOS 示例專案
2115 [camera] 為 iOS 定義 clang 模組
2125 [in_app_purchase] 為 iOS 定義 clang 模組
2128 [image_picker] 為 iOS 定義 clang 模組
2135 [android_alarm_manager] 為 iOS 定義 clang 模組
2137 [connectivity] 為 iOS 定義 clang 模組
2138 [device_info] 為 iOS 定義 clang 模組
2144 [android_intent] 為 iOS 定義 clang 模組
2145 [instrumentation_adapter] 為 iOS 定義 clang 模組
2146 [local_auth] 為 iOS 定義 clang 模組
2147 [path_provider] 為 iOS 定義 clang 模組
2148 [package_info] 為 iOS 定義 clang 模組
2149 [quick_actions] 為 iOS 定義 clang 模組
2175 [sensors] 為 iOS 定義 clang 模組
2176 [shared_preferences] 為 iOS 定義 clang 模組
2177 [url_launcher] 為 iOS 定義 clang 模組
2179 [battery] 為 iOS 定義 clang 模組
2180 [share] 為 iOS 定義 clang 模組
2182 [google_maps_flutter] 為 iOS 定義 clang 模組,修復分析器警告
2183 [video_player] 為 iOS 定義 clang 模組
2184 [google_sign_in] 為 iOS 定義 clang 模組
2185 [webview_flutter] 為 iOS 定義 clang 模組
2186 在 CI 測試中,當軟體包更改時,對 iOS 和 macOS 程式碼執行 clang 分析器
40302 為 FlutterPluginRegistrant 設定 DEFINES_MODULE 以生成 modulemap
2206 [flutter_plugin_android_lifecycle] 更新 README,包含新外掛名稱
2207 [flutter_plugin_android_lifecycle] 將 e2e 依賴項升級到 0.2.1
2223 [flutter_plugin_android_lifecycle] 在示例應用中註冊 e2e 外掛
2243 [flutter_plugin_android_lifecycle] 將 FlutterLifecycleAdapter 適配到新的嵌入器 API
44043 新增 Android 嵌入器版本分析
2120 [image_picker] 修復了從 'flutter build aar' 構建的 aar 時的崩潰
2168 在嵌入器中為 Android 生命週期新增外掛
2174 [url_launcher] 在 Android Gradle 屬性中啟用 androidx 和 jetifier
11239 從 FlutterActivity 中移除 dart entrypoint Intent 引數。(#38713)
12469 開始斷言 FlutterEngine 正在執行,然後才透過通道進行通訊。
13403 在 FlutterNativeView 中使用 DartExecutor.getBinaryMessenger 而不是已棄用的 send 方法
Material
#Material 仍然是 Flutter 團隊的重點。在此版本中,我們透過黑暗模式支援重新整理了所有 Material 控制元件。此外,我們還添加了支援將 Scaffold 的 body 高度擴充套件到 app bar 後面的功能,這是由社群成員貢獻的!
36998 在 DropdownButtonFormField 中添加了與 DropdownButton 匹配的屬性
37962 顯示搜尋應用欄主題
38583 添加了 InheritedTheme
38650 允許獨立主題化 Persistent 和 Modal bottom sheets
38709 [Material] 向 SwitchListTile 新增 contentPadding 屬性
38726 使停用的按鈕/晶片/文字欄位不可聚焦。
38813 新增 ToggleButtons.textStyle 屬性
38831 [Material] 向 bottom sheet 和 theme 新增 clip 屬性
38898 ToggleButtons 測試改進
39144 將 textAlignVertical 引數新增到 TextFormField
39156 添加了 Scaffold.extendBodyBehindAppBar
39299 新增 showAboutDialog 示例
39333 允許獨立主題化 Persistent 和 Modal bottom sheets 的背景顏色
39433 向 InputDecoration 和 InputDecorationTheme 新增 helperMaxLines
39572 防止建立 Divider borderSide 時出現異常
39583 修復了單操作橫幅以確保按鈕對齊
39627 ButtonThemeData 中的預設 colorScheme 資料(修復 #38655)
39632 更新了 debugFillProperties 以測試 slider.dart 和 slider_test.dart 中的所有屬性
39903 修復了將 autofocus 傳遞給 MaterialButton,以及在重建 Focus widget 時。
39924 向 DartDoc 片段生成器添加了 DartPad 選項。
40390 文字欄位的 a11y 改進
40608 添加了配置晶片檢查標記顏色的選項
40641 向 Buttons 新增 onLongPress
40665 修復了 CupertinoTextField 和 TextField ToolbarOptions 不更改的問題
40713 Material textselection 上下文選單無法停用全選
40994 修復了 ThemeData.copyWith toggleButtonsTheme 引數型別
41120 下拉選單佈局尊重選單項的固有尺寸
41150 當 userGestureInProgress 的值改變時,重建 modal routes
41172 修復了一些不良的縮排
41320 [Material] 從 TextFields 中移除文字波紋效果
41338 修復了 ReorderableListView 的子項鍵使用 (#41334)
41463 [Chip] 確保對於帶背景顏色的晶片,InkResponse 在刪除時位於前景
41625 更新 DefaultTabController 以允許零個標籤
41629 [Material] 修復 Tooltip 以尊重環境 Directionality
41632 修復 MaterialBannerTheme 方法中令人困惑的 'popupTheme' 變數名
41640 一些格式更改
41650 DropdownButton.style API 文件示例,用於不同的按鈕和選單項文字樣式
41864 更新 BottomAppBar 以在黑暗主題中使用 elevation overlays
41972 向 MaterialButton、RawMaterialButton 和 IconButton 新增 enableFeedback 引數
42033 重申:下拉選單佈局尊重選單項的固有尺寸
42189 修復了 ModalBottomSheets 未響應主題更改的迴歸
42366 TextStyle.fontFamily 應覆蓋 ThemeData 中的 fontFamily 引數
42404 向 showModalBottomSheet 新增 isDismissible 配置
42482 僅當方向更改時才關閉下拉選單,而不是大小。
42554 在重新建立焦點節點時修復路由焦點和自動聚焦。
42613 修復 Tooltip 對 PopupMenuButton 的實現
42683 透過快取後代和祖先來最佳化焦點操作。
42779 修復晶片波紋錯誤 - 不再有兩個波紋
42811 向 DropdownButton 添加了一個 Focus 節點,併為其添加了一個啟用動作。
42936 支援帶有巨型標題的 AppBars
43213 為開關、複選框和單選按鈕添加了快捷鍵和操作。
43422 修復了 AboutListTile 在未設定圖示時顯示空圖標占位符的問題
43511 改進 DropdownButton 宣告訊息
43526 將 PopupMenuButton.icon 型別更改為 Widget
43722 開啟下拉選單時使選中的項獲得焦點
43843 移除 print 並修復程式碼格式
43848 不允許停用的 InkWells 獲得焦點
43859 新增 primaryFocus 的便捷訪問器
43946 向 ExpansionTile 新增 subtitle
43981 修復 app_bar.dart 中的拼寫錯誤
44029 使用字母基線佈局 InputDecorator
44068 修復 tabs.dart 中的拼寫錯誤
44076 註釋中的拼寫錯誤
44160 將 selectedItemBuilder 透過 DropdownButtonFormField 傳遞
44296 ModalBarrier 和 Drawer 屏障阻止滑鼠事件
44736 檢查 material localizations 中的新 diff
44787 修復程式碼片段以在輸出示例中包含元素 ID。
44867 FocusableActionDetector widget
45081 從文字欄位測試中移除重複的 expect
45362 新增 Widget of the Week 影片嵌入
文字和無障礙
#在文字和無障礙方面,我們對 ButtonBar 和 AlertDialog 進行了一些增強,以防止文字溢位。
40468 將文字欄位字元限制傳播到 semantics
41730 允許自定義 semantics debugger 的標籤樣式
42344 向 snackbar 新增 onVisible 回撥。
42368 更新 Android semantics 測試以匹配現有的引擎行為。
43193 ButtonBar 在水平溢位時在列中對齊
43226 實現 AlertDialog 標題/內容溢位滾動
38573 限制 scrollOffset 以防止文字欄位抖動
41108 修復文字欄位更改時發生的文字編輯 bug。
44605 更改 RenderEditable.textAlign 不再會導致熱過載失效
動畫和滾動
#在動畫方面,我們釋出了 TweenAnimationBuilder,用於構建自定義隱式動畫。有關更多資訊,請檢視此 TweenAnimationBuilder 影片。
38317 TweenAnimationBuilder 用於在不管理 AnimationController 的情況下構建自定義動畫
38979 向隱式動畫控制元件新增 onEnd 回撥
43756 將未動畫新增的路由標記為不透明
39142 修復 sliverfixedextent 與 sliverchildbuilderdelegate 的錯誤…
44965 滾動 scrollable 以使焦點控制元件可見。
Web
#我們將 Web 支援從開發版頻道移至 Beta 版頻道。有關更多詳細資訊,請檢視 Web 支援部落格文章。
37819 新增 HtmlElementView(Flutter Web 平臺檢視)
38723 處理 Web 應用程式的編譯失敗
38823 連線到 Web 應用程式時列印服務 URL
39006 將 Web 工作流新增到預設驗證器
39066 瀏覽器斷開連線時終止 resident runner。
39073 為 Flutter Web 應用程式新增 profile 模式
39189 修復 Flutter Web 的源對映載入和除錯協議
39344 上游文字編輯在 Flutter Web 中所需更改
39364 更正庫路徑併為 dart 平臺移除 dart:io 和 dart:isolate
39414 確保 profile 在 build web 命令中被轉發
39462 移除 shell 中的 run 併為 chrome 啟動新增單元測試
39543 如果 .dart_tool 缺失,則建立它
39628 為 Web 外掛自動生成註冊器
39748 列印正在啟動的訊息
39751 小清理和防止多次退出
39752 為 Web 新增重新編譯請求的延遲
39756 從 create 中移除 web 標誌
39774 解決 Web SDK 源對映包損壞的臨時方法
39910 如果沒有 Web 外掛,則不生成外掛註冊器
39950 註冊 reload sources 呼叫,並使 'r' 成為 Web 的重啟快捷鍵
39951 新增 "web" 伺服器裝置,以允許在任意瀏覽器上執行 Flutter for Web
39983 更新 Flutter for Web 的支援庫集
39999 為 Web 停用效能覆蓋
40175 確保我們為 Flutter Web 傳送熱過載事件
40191 為 Web 裝置新增 run 配置的主機和埠
40301 允許跳過 Flutter for Web 中的 webOnlyInitializePlatform
40370 將 port 重新命名為 web-port,將 hostname 重新命名為 web-hostname
40465 將 --web-hostname 和 --web-port 傳遞給 release 模式除錯選項
40627 允許使用 --no-web-browser-launch 跳過 chrome 啟動
40757 當 Chrome 不可用時,修復 Web 伺服器裝置的可見性
41222 將歸檔的 js 部分檔案從 dart_tool 目錄中複製出來
41347 修復 Web resident runner 初始化中的計時問題
41386 服務 web 下的所有 html 檔案
41397 Web 鍵盤對映
41441 編譯失敗時退出 Web resident runner
41545 為 Flutter Web 新增編譯和重新整理時間的分析跟蹤
41618 將 Server/web 重新命名為 Headless Server/headless-server
41695 向找不到 Chrome 的訊息新增更多資訊
41815 [web] 明確表示小寫 "r" 也可以執行熱重啟
41906 確保在 build_web 中生成外掛註冊器
41996 [web] 始終傳送路由名稱,即使它為 null
42144 當為 Web 應用程式提供 --start-paused 時,不要急於呼叫 runMain
42260 Web 程式碼的小清理
42289 確保 precache 在 dev 分支上工作
42531 啟動 Web 伺服器時列印正確的 hostname
42676 [web] 更新 Web runner 訊息,顯示 flutter.dev/web
42701 從除錯伺服器提供正確的內容型別
42857 為 Web 的 release/profile 構建修復進度指示器。
42951 為 Web 實現 debugTogglePlatform
42970 將 headless server 重新命名為 web server
43214 對於 Web 上的 --profile 構建,仍使用 -O4,但程式碼未壓縮。
43573 捕獲 Web 工具中的 MissingPortFile。
43576 啟用 Web 的實驗性增量編譯器
44028 支援 Web 上的 --no-resident
44263 允許 Web 伺服器裝置在以 --start-paused 啟動時使用擴充套件
44268 從使用 app.progress 切換到 app.webLaunchUrl 以傳遞 Web 啟動 URL
44421 將 Web 測試切換到 macOS
44744 確保 Web 伺服器不強制使用 dwds
44746 移除 chrome 裝置 Web 整合測試
44830 更新 manual_tests 以便能在 macOS/Web 上執行
45145 快取 Web 裝置所需的 sdkNameAndVersion 邏輯
45286 修復 Windows 上的實驗性增量 Web 編譯器
11360 構建舊版 Web SDK
11421 將 Flutter Web 引擎同步到最新
11732 最後一次 Flutter Web 同步:cc38319841
11796 為外掛處理程式提供一個鉤子,用於在 Web 上接收訊息
12161 確保 Web 影像 ImageShader 實現 Shader 介面
12335 [Web] 實現暗模式支援 Web
12445 [web] 過濾測試目標;快取 host.dart 編譯
12712 支援 Web 的正確鍵盤對映
12747 為 channel_buffers.dart 新增 Web 實現
12753 [web] 不要求 felt 在 PATH 中
12794 [web] 支援路徑轉換
12811 [web] 實現基本的徑向漸變(TileMode.clamp,無變換)
13003 [web] 路由替換時更新 URL
13066 [web] 新增基本的每頂點顏色 drawVertices API 支援
13141 啟用/調整 Web SDK 源對映
13161 啟用/調整 Web SDK 源對映,第二版
13187 [web] 環境變數以停用 felt 快照
13190 [web] 修復畫布重用指標。重構 drawVertices 程式碼。
13259 [web] 在 felt 構建 watch 模式下支援 -j 使用 goma
13268 [web] 支援輸入操作
13272 [web] [test] 新增 Firefox 安裝功能到測試平臺
13296 [web] Cupertino 動態顏色修復。
13359 Web:修復 Color 子類處理
13462 [web] 從 visualviewport 獲取大小,而不是 window.innerHeight/innerW…
13483 web: 修復 Paragraph.getBoxesForRange 的零長度範圍
13634 [web] 在 felt 構建 watch 模式下忽略對 *.ttf 檔案的更改
13699 [web] 不要將鍵盤事件從文字欄位傳送到 Flutter
13722 [web] 正確支援文字欄位的 obscureText
13741 [web] 重構文字編輯以優雅地處理任何順序的平臺訊息
13748 [web] 支援 gif/webp 動畫,加快 BitmapCanvas 中的影像繪製速度。
13769 [web] 實現 TextStyle.shadows
13779 [web] 修復 drrect 的路徑到 svg
13802 [web] 修復可選擇文字渲染
13809 [web] 修復影像的混合模式
13860 [web] 將畫布的兄弟變換改為 3d,z=0,以繞過畫布渲染錯誤。
13901 [web] 修復單行點陣圖畫布文字陰影
13909 [web] 實現 PathMetrics.length
13922 [web] Flutter for Web 自動更正支援
13929 [web] 允許使用者啟用畫布文字測量
13940 [web] 修復 dom_renderer 重置的邊緣檢測
13960 [web] 修復 Firefox 的預設行高問題
13981 [web] 在文字佈局中使用 Element.nodes 而不是 Element.children
2119 新增 Web URL launcher
桌面端
#我們還正在將 macOS 支援從技術預覽版移至 Alpha 版,並在開發版頻道中啟用它。
37901 [macos] 在建立邏輯鍵之前檢查特殊鍵
38748 為 macOS 建立結構正確的框架
38858 在 Windows 和 Linux 上使用 GLFW-name artifacts
38909 新增對 macOS release/profile 模式的支援(3/3)
39017 新增 "OneSequenceRecognizer.resolvePointer"。修復多個指標上的 DragGestureRecognizer 崩潰
39264 為 macOS 新增 profile 支援
39432 在 Windows 的 zip 檔案中不隱藏 .git
39702 修復 macOS App.framework 版本符號連結
39836 切換到 Win32 Windows 嵌入器
40011 [windows] 搜尋預釋出版和“所有”Visual Studio 安裝
40186 為預設焦點遍歷新增快捷鍵和操作
40194 為 Windows 專案新增臨時目錄
40197 [windows] 重構以最佳化 vswhere 查詢
40294 修復 copy 命令併為 macOS assemble 移除 resolve sync
40375 加固 macOS 構建對 Xcode 專案 getInfo 的使用
40393 將構建模式轉換為小寫,用於 tool_backend
40587 為 Linux 新增臨時目錄
40730 在外掛更改時使 macOS pods 失效
40851 支援 macOS(應用程式和外掛)的建立
41015 為 Windows 和 Linux 新增外掛支援的初步工作
41332 防止 PointerEnter[or Exit]Event 擦除 event.down 值
41551 在命令列上傳遞 Linux 構建模式
41612 Linux Desktop 的 AOT 支援 I:將 Linux 構建切換為 assemble
41747 在 macOS Podfile 中新增 Profile 條目
42031 重寫 MouseTracker 的跟蹤和通知演算法
42235 為 RawKeyEventDataAndroid 事件讀取 deviceId
42487 重構 depfile 用法並更新 Linux 規則
42861 將 repeatCount 新增到 RawKeyEventDataAndroid
42962 移除 linux-x64 unpack 邏輯
43238 修復當節點選項為空時的焦點遍歷
43362 允許重新構建 Docker 映象,重新啟用 deploy gallery macos
43758 按平臺拆分桌面配置回退變數
44130 為 macOS 文字編輯新增命令鍵繫結並修復選擇。
44410 新增 macOS fn 鍵支援。
44576 [ci] 為 macOS 使用最新的 Cirrus 映象
44620 提高 tool_tests-general-linux 的記憶體要求
44844 正確解釋 GLFW 鍵事件上的修飾鍵
45264 新增 macOS 熱過載測試
45392 [ci] 為 Windows 任務提供更多資源
8507 為 macOS shell 新增紋理支援。
11324 清理 Windows 和 Linux 的構建輸出
11327 [Windows] 更新 API 以實現替代的 Windows shell 平臺實現
11380 在 macOS FlutterDartProject 中使用 App.framework
11386 允許 GLFW 嵌入使用不可調整大小的視窗
11475 buildfix: 支援構建 Windows release/profile 模式(#32746)
11828 [Windows] 透過新增非同步資源上傳的上下文來解決 #36422
12230 新增 FlutterAppDelegate 的初始 macOS 版本
12234 [glfw/windows] 停止跟蹤輸入模型
12267 [macos] 停止跟蹤文字輸入模型
12276 為 Windows 新增系統字型更改監聽器
12423 新增 Windows 嵌入測試
12809 僅在 Linux 上使用 x64 主機工具鏈進行 x86 target gen_snapshot
12814 在 Windows 上啟用所有引擎測試
13300 將 macOS 桌面嵌入器切換到使用平臺和渲染任務執行程式相同的執行緒配置。
13702 修復 macOS 上的編輯選擇和刪除
框架
#在此版本中,我們修復了許多錯誤,以提高我們框架的質量和穩定性。
38643 PlatformViewLink 處理焦點
38699 修復 widgetspan 在文字小部件中與省略號不工作
38789 修復 DragTarget 在被拒絕的 Draggable 進入時未被重建 #38786
38930 實現系統字體系統通道監聽器
38936 修復 KeySet(和 LogicalKeySet)的 hashCode 計算
39059 解釋 MediaQuery 測試檔案中的 const 值
39085 使檢查器詳細資訊子樹深度可配置。
39089 糾正 InheritedTheme.captureAll() 對於相同型別的多個主題祖先
39195 尊重反向滾動檢視
39252 為 CustomMultiChildLayout 新增 relayout 選項。
43282 在 TextPainter 中公開文字指標。
39354 新增 IterableFlagsProperty 並將其用於代理框類
39428 替換文件示例文字
39446 將 viewType 新增到 PlatformViewLink
39844 修復彈出英雄的曲線
40099 修復 double.infinity 序列化
40105 確保在根小部件附加時排程幀
40119 修復 skips 以包含所有頻道
40280 PlatformView:如果控制器更改,則重新建立表面
40306 在英雄彈出後以及 from hero 為 null 時恢復 offstage 和 ticker 模式
40609 為 strut FlagProperty 指定 ifTrue 和 ifFalse
40635 從 getSpanForPosition 返回 WidgetSpans
40638 允許外掛將平臺訊息傳送到框架並實現 EventChannel
40709 可選文字對齊已損壞
40718 在許可證解析器中處理 CR+LF 換行符序列
40775 使用 EdgeInsetsGeometry 而不是 EdgeInsets
40917 AnimatedBuilder API 文件改進
41145 顯式設定 CocoaPods 版本
41245 更改 ActionDispatcher 的查詢方式。
41329 重構:基礎點選手勢識別器
41417 處理先前的評論,修復 Intent.doNothing。
41763 MediaQuery 更新時不再重新構建 Routes
41791 重構:使用一些實用函式使 MouseTracker 測試簡潔
41803 修復了 media query 問題並添加了測試以防止其再次出現
41879 使 MouseTracker.sendMouseNotifications 私有
42076 在 attach 時建立手勢識別器,在 detach 時處置以避免洩漏
42253 將模態障礙物更改為在點擊向上時關閉
42484 漸變變換
42526 提高路由器效能
42558 使用佔位符尺寸來反映最終文字佈局
42688 原始碼註釋拼寫錯誤修復
42777 修復 TransitionRoute 中的記憶體洩漏
42879 重新實現硬體鍵盤文字選擇。
42953 軟化圖層損壞
43006 在 ClipRRect 中將預設 borderRadius 設定為零(如文件所述)
43246 Tap.dart:修復了 reason 右側的間距
43296 跳過失敗的測試以獲得綠色構建
43467 修復了可能意外呼叫回撥兩次的錯誤。
43677 新增 libzip 快取偽影
43684 [flutter_runner] 使用 topaz 樹中的 sky_engine
43685 從 flutter_tools 中移除 Poller 類
43739 啟用 avoid_web_libraries_in_flutter
43865 將 show 和 setEditingState 呼叫重新排序到 IMM
44150 手動回滾引擎以恢復樹
44217 將指標事件清理移至引擎。
44233 從 inherited model 中移除 yield
44408 移除不再需要的清理程式碼
44422 移除 TextRange,將其從 dart:ui 匯出
44490 修復 "node._relayoutBoundary == _relayoutBoundary" 崩潰
44611 將 TextPosition 轉換為 getWordBoundary
44617 使帶 pixels=null 的 ScrollPosition 處置合法
44622 跟蹤並使用回退 TextAffinity 來處理 null affinity 平臺 TextSelections。
44967 嘗試使用更優雅的 FlutterError,並在 release 模式下使其不那麼激進
45083 修復可拖動的可滾動表格滾動通知
45240 implicit-casts:false 在 flutter_web_plugins 中
45249 implicit-casts:false 在 flutter_goldens 和 flutter_goldens_client 中
引擎
#在此更新中,核心引擎繼續獲得許多改進,包括一項解決了 iPhoneX/Xs 上長期要求的滾動效能問題的修復。
9386 [glfw] 將 glfw 鍵資料傳送到框架。
9498 當應用程式進入後臺時通知框架清除輸入連線 (#35054)。
9806 在 ios_external_texture_gl 中重用紋理快取。
9864 新增將 AppDelegate 新增為 UNUserNotificationCenterDelegate 的功能
9888 提供 dart vm 的初始 isolate 回撥,以便子 isolates 屬於父 isolates 組。
10154 開始利用 Skia 的新 copyTableData 來避免多餘的複製。
10182 透過允許初始化並行化,使 flutter 啟動更快
10326 copypixelbuffer 導致崩潰
10670 在 dart:ui 中公開 LineMetrics
10945 為每個許可證對 FILE 輸出進行去重
11041 向 FrameTiming 新增 BroadcastStream
11049 在 FlutterViewController 釋放時釋放 _ongoingTouches
11062 為自定義嵌入器任務執行程式提供佔位符佇列 ID。
11063 更新 ExternalViewEmbedder 類註釋。
11070 Metal 的 Platform View 實現
11210 將 Chrome 新增到 Dockerfile
11222 不要重複呈現會話
11224 在重新佈局時更新 metal layer 的可繪製大小。
11226 讓 firebase testlab 始終透過
11228 重新啟用 firebase 測試且不使用 google 登入
11230 將 tflite_native 和 language_model 的修訂版本更新為與 Dart SDK 匹配
11256 將編譯器升級到 Clang 10。
11265 使停用除錯符號剝離成為可能
11270 停止服務時將 NSNetService 委託重置為 nil。
11283 修復等於 null 的物件未被檢測為 null 的問題
11300 如果存在 view_embedder,則不準備 raster_cache
11305 修復 EmbedderTest.CanSpecifyCustomTaskRunner 中的段錯誤
11306 將 FlutterMacOS 的 podspec 最低版本設定為 10.11
11309 修復 change_install_name.py 以相容 GN
11310 當使用自定義合成器時,請確保根畫布已被重新整理。
11315 不新增 null 任務觀察者
11330 從輸出偽影中移除引擎雜湊
11355 更新 sim 指令碼
11356 從 pom 檔名中移除引擎雜湊
11361 在方法通道呼叫中包含 Java 堆疊跟蹤
11367 使訊息迴圈任務條目容器執行緒安全
11368 為 GLFW 切換到增量執行迴圈
11374 更新 scenario readme
11382 微小:移除 pom 檔案中的空行
11384 考慮外部檢視嵌入器管理的表面的根表面變換。
11388 允許覆蓋 GLFW 畫素比
11392 在測試合成器中連線軟體渲染。
11394 在使用軟體渲染器進行自定義合成時避免獲取根表面。
11395 移除已棄用的 ThreadTest::GetThreadTaskRunner 並使用新的 CreateNewThread API。
11416 縮小 cirrus docker 映象:減少 RUN 計數,清理 apt-get
11419 為 PerformanceOverlay 支援非 60Hz 重新整理率
11420 修復 Chromebook 上的觸控板滾動
11423 新增管道中飛行幀數的跟蹤。
11427 跳過空的平臺檢視覆蓋
11436 更新 skia 的方法
11456 更新 ui.LineMetrics.height 指標,使其對外部使用者更有用
11473 在 EOF 處新增缺失的換行符
11489 在 C++ 原始檔中確保 EOF 前有尾隨換行符
11520 Bitcode 僅用於 release
11524 在 ios_external_texture_gl 中重用紋理快取
11528 從 gen_snapshot 中剝離 bitcode
11537 新增檢查以啟用 metal 進行匯入
11550 使 Skia 快取大小通道響應一個值
11554 使 engine、ui 和 sdk rewriter 成為 dill 構建的輸入
11576 對 Doxygen 主題進行少量調整。
11622 從 font_asset_provider 中包含
11635 [flutter_runner] 移植 ViewBound Wireframe 功能
11636 [fidl][flutter_runner] 移植到新的 fit::optional 相容 API
11638 更新 CanvasSpy::onDrawEdgeAAQuad 以適應 Skia API 更改
11649 [flutter] 移植:在 microtask 佇列上執行 handle wait completers
11654 在所有翻譯單元的 EOF 處附加換行符。
11655 在 Safari 上載入格式不正確的字型時不會崩潰
11669 新增樣式指南和格式化資訊
11717 為 Skia 通道返回 JSON 值
11722 在設定 font-family 屬性時,始終引用字體系列名稱。
11736 將 wasm 新增到 sky_engine
11776 [flutter_runner] 將所有更改移植到 dart_runner cmx 檔案
11783 完全剝離 bitcode
11795 為字型指標新增一個好的參考來源。
11804 結合 View.setSystemGestureExclusionRects 的程式碼審查反饋來自 #11441
11808 標註 FlutterEngine 的可空性,使 Swift 編寫更符合人體工程學
11835 [CFE/VM] 修復 bump 到 kernel version 29 的 merge/typo
11839 從 Scenarios 測試應用程式中移除 ENABLE_BITCODE
11842 透過傳遞完整的 justify 跟蹤變數來修復使用換行符的 RTL giust
11847 為 flutter runner 新增示例單元測試目標
11849 使用自動生成清單支援構建獨立的 far 包
11875 [flutter_runner] 將公共庫新增到 test far
11877 完成方法通道上的訊息響應的連線
11880 處理新的導航平臺訊息
11893 新增 @Keep 註解
11899 改進輸入法和 Unicode 字元顯示(#30661)
12011 為 1.9.1 的 cherry-picks
12016 [flutter_runner] Kernel 平臺檔案現在可以在 topaz 中構建
12023 修復多 Span 文字標尺快取查詢失敗。
12026 [flutter_runner] 將 Flutter 元件引數傳遞給 Dart 入口點
12034 [flutter_runner] 重構我們的構建規則,使其更符合 topaz
12048 [flutter_runner] 為 Dart VM 剖析器生成符號
12054 [flutter_runner] 從 Topaz 移植可訪問性橋
12076 向 flutter_window_controller 新增一個銷燬當前視窗的方法。
12080 不要引用通用字體系列
12081 新增 GradientRadial paintStyle 實現
12087 在每次嵌入器單元測試呼叫時,預設不啟動 observatory。
12204 在 engine 的 release 模式下不停用 dart:ui 類的 toString
12205 預設不載入 Roboto
12218 將修補的 SDK 名稱名稱空間化,以避免與 Topaz 衝突
12222 不要在 topaz 樹上生成 kernel 平臺檔案
12226 [web_ui] 為 MethodCalls 到 flutter/platform_view 新增缺失的 dispose handler
12227 [web_ui] PersistedPlatformView 屬性更新處理,以實現大小調整
12228 固定並自動安裝 chrome 版本
12229 改進 RecordingCanvas 上內部落入外部 DRRect 的渲染(或不渲染)的檢查
12249 可編輯文字修復
12253 實現 Base32Decode
12256 在訓練期間不假定 Platform.script 是 Dart 原始檔。
12257 重新啟用 ThreadChecker 並修復相關的失敗
12258 重構和最佳化 'felt' 工具
12269 a11y:公開文字欄位的最大字元數
12273 清理 AppLifecycleTests
12274 將螢幕截圖測試輸出儲存為 Cirrus 偽影;對不匹配的螢幕截影像素進行模糊比較
12275 隨機測試順序並重複測試執行一次。
12281 可選地跳過構建
12282 [flutter_runner] 更改偽影的路徑
12287 將 PluginRegistry 新增到 C++ 客戶端包裝器 API
12288 在引用字體系列時包含 firefox
12289 修復 flutter runner 路徑
12303 向 felt 新增構建命令
12306 修復 setSystemGestureExclusionRects 的宣告以匹配 PlatformMessageHandler 介面
12307 清理 web_ui
12308 [flutter] 移除舊的 A11y API。
12318 更新 canvaskit 後端
12319 向 getDisplayRefreshRate 協議新增 "type"
12320 修復 GLFW 事件迴圈中的連續事件輪詢
12323 felt 工具的 README
12330 確保即使沒有角的 DRRect 也會繪製。
12336 檢查 RTL 處理中尾隨空格執行的索引邊界。
12340 [flutter_runner] 暫時不要使用預構建
12342 更新測試以驗證二次 isolate 在主 isolate 退出之前已關閉。
12343 [flutter_runner] 從 CC 源中移除共享快照的使用
12345 [flutter_runner] 移植 Topaz 的調優建議以獲取 vulkan surface provider
12346 [flutter_runner] 從 runner context 移至 component context
12347 [flutter_runner][async] 將 dart/flutter 遷移到新的 async-loop API
12348 [flutter_runner] 從 topaz 移植新的編譯跟蹤
12349 [flutter_runner] 顯式將 |trace_skia| 設定為 false
12350 [flutter_runner] 移植 vulkan surface 更改
12355 跳過易 flakiness 的測試
12363 跟蹤 "mouse leave" 事件
12375 同步 dart_runner
12395 將 --dart-vm-flags 白名單更新為包含 --write-service-info 和 --sample-buffer-duration
12403 在框架尚未準備好之前,不要傳送指標事件
12410 為具有輸入焦點的檢視傳送 TYPE_VIEW_FOCUSED。
12412 SkSL 預編譯
12426 將回退字型名稱儲存為 vector 而不是 set。
12431 在 recording_canvas.dart 中解釋負半徑為 0
12432 解決三星鍵盤問題
12434 刪除 golden 檔案;切換到 flutter/goldens
12435 向用於分析的 Dart SDK 副本新增 dart:html, dart:js, 和 dart:js_util
12443 強制 felt 工具在 sigint、sigterm 時退出
12446 新增對 JIT release 模式的支援
12447 為 Firefox 的文字編輯反映選擇更改
12448 使 kDoNotResizeDimension 公開,以便框架可以直接使用它
12450 新增對 5 個滑鼠按鈕的支援
12453 新增 Link SemanticsFlag
12454 將 .mskp 檔案新增到二進位制格式
12470 [web_ui] 檢查特定裝置的指標是否已按下
12479 重構 text_editing.dart
12563 從 unittests 中移除 blobs 快照格式的使用
12565 移除對 topaz 的引用
12573 [flutter_runner] 將 thread_application 對重構為 ActiveApplication
12618 將 isFocusable 新增到 SemanticsFlag
12681 建立一個可打包的增量編譯器
12695 向 'Texture' 和 'FlutterTexture' 新增 onUnregistered 回撥
12698 [web_ui] 修復文字編輯的無效狀態 bug
12699 在 Scenario 應用中新增 'pub get' 到 'compile_xxxx.sh'
12700 為嵌入器新增缺失的標誌。
12701 清理:建立了一個宏來斷言 ARC 已啟用。
12706 檢查輸入法子型別是否為 null
12708 清理:為 FlutterViewController 開啟了 NS_ASSUME_NONNULL_BEGIN。
12710 在 textarea 元素中設定透明背景
12725 將通道緩衝區大小調整擴充套件到方法通道。
12728 從 scenario 應用中移除未使用的匯入
12730 當節點設定了 SCOPES_ROUTE 時,停止設定可訪問性文字。
12733 [flutter_runner] 使 rd 和 rx 統一
12746 當設定輸入焦點時傳送 AccessibilityEvent.TYPE_VIEW_FOCUSED。
12754 透過考慮更新的 SubmitFrame 簽名來修復 Metal 構建。
12775 向程式碼添加了一些執行緒斷言,並使 ios_surface_ 安全,因為
12777 修復 Metal 構建。
12780 重啟所有現代三星鍵盤 IMM
12783 新增單元測試以驗證根表面變換會影響平臺檢視座標。
12785 修復包指令碼中的 bug 並新增 dev_compiler
12793 修復 Firefox 中的選擇問題
12797 新增批次更新截圖的選項;更新截圖(進行中
12798 [flutter_runner] 更新 cmx 檔案以包含 TZ 支援
12799 停用 EmbedderTest.CanLaunchAndShutdownMultipleTimes。
12800 美化所有 CMX 檔案
12801 不要引用字體系列名稱
12802 即使目標平臺是 32 位,也使用 64 位主機工具鏈構建 gen_snapshot
12808 添加了一個嵌入器示例
12813 解鎖 flutter_tester 啟動時的 SIGPROF
12816 啟用 sanitizer 構建變體。
12821 更新 buildroot 以拉取 ubsan 更新。
12931 移除對 package:_chrome 的引用
12958 在 KeyEventChannel 編碼方法中新增 deviceId
12960 修復通道緩衝區除錯輸出中的拼寫錯誤。
12974 支援標準編解碼器中的空字串和向量
12980 目前,_printDebug 僅在 engine 的 debug 構建中發生。
12982 顏色矩陣文件
12986 點選 Tab 時阻止預設行為
12988 除非平臺需要 host_targeting_host,否則使用標準的 gen_snapshot 目標
12989 取消 kDoNotResizeDimension 的公開
12991 編譯 sanitizer 抑制列表並根據需要報告 bug。
12999 開始將我們的 debug 背景任務 ID 設定為無效
13001 缺失的連結標誌
13004 允許嵌入器在啟動時指定任意資料給 isolate。
13005 auto-formatter 對 BUILD.gn 檔案的修復
13008 與 Skia 的 SkShaper/SkParagraph API 整合更多
13009 修復 Link Semantics 拼寫錯誤
13015 觸發 PlatformViewController FlutterView 回撥
13042 新增 "felt clean" 命令
13043 為 Win32 嵌入新增任務執行程式
13044 在移動瀏覽器上支援鍵盤型別
13047 允許嵌入器在啟動時指定任意資料給 isolate。
13049 在 tsan instrumented 構建中忽略 Dart VM 的執行緒洩漏。
13053 將 Cirrus badge 設定為僅顯示 master 分支的狀態。
13056 將 Metal 渲染器選擇置於執行時標誌和 plist 選擇加入之後。
13071 [dart_aot_runner] 新增對生成 dart_aot 快照的支援
13074 [dart_aot_runner] 新增生成 dart_aot 二進位制檔案的規則
13082 java imports/style
13085 當 gen_package 失敗時列印更多輸出
13086 Gen package 輸出已更正
13088 felt: 使用 rest args 指定測試目標
13089 清理 gen_package.py
13090 為 felt 工具快照,以加快啟動速度
13091 移除持久快取 unittest 超時
13094 整合更多 SkParagraph builder 補丁
13096 [dart_aot_runner] 使用 host_toolchain 構建 kernels
13097 更新 felt README
13101 [dart_aot_runner] 生成 vmservice aotsnapshots
13103 [dart_aot_runner] 完成 dart_aot_runner 的移植
13121 更改 IO 執行緒著色器快取策略
13122 重構 chrome_installer
13123 將 ICU 版本升級到 64.2
13124 允許嵌入器指定渲染任務執行程式描述。
13125 將 dart:__interceptors 庫新增到 dart sdk
13126 [frontend_server] 在訓練執行中包含位元組碼生成。
13143 將 flutter_tester 二進位制檔案新增到 CIPD 包
13144 文件 //flutter/runtime/dart_vm
13151 移除不完整的靜態執行緒安全註解。
13153 使 Dart isolate 建構函式私有。
13154 修復 frontend server package_incremental 指令碼的輸出檔案路徑
13157 修復 SkVertices 中的型別錯誤
13159 將基於表面的 SceneBuilder 實現移至 surface/
13162 文件 //flutter/runtime/dart_isolate.h
13175 在 sendKeyEvent 中移除對 updateEditingState 的重複呼叫
13176 將 repeatCount 新增到 FlutterKeyEvent
13177 將編譯器升級到 Clang 10。
13182 如果我們收到一個“按下”事件,則將該裝置新增到活動裝置中。
13185 新增 firefox_installer.dart
13192 在 CanvasKit 後端中使用 window.devicePixelRatio
13193 自定義合成器層必須考慮裝置畫素比。
13196 文件 //flutter/runtime/dart_snapshot.h
13207 包裝文字編輯以修復選擇。
13209 保持 felt 執行的子程序的標準輸出顏色
13212 在自定義合成器回撥周圍新增跟蹤事件。
13218 為嵌入器 API 指定一個人類可讀的錯誤原因。
13232 避免在 UI 執行緒上取消引用 IO 管理器的弱指標
13237 不要在解構函式中嘗試清空 SkiaUnrefQueue
13238 允許嵌入器更新首選語言環境。
13239 在 UIDartState 中持有 Skia unref queue 的引用
13240 將 CanvasKit 更新到 0.7.0 並完善繪製
13241 收集許可證時忽略 *.obj 檔案
13242 將 harfbuzz 更新到 2.6.2,將 buildroot 回滾到 a518e
13255 修復可訪問性橋中的 NPE
13261 更新許可證指令碼以忽略 testdata 目錄
13265 確保我們在 Shell::EngineHasLivePorts() 中呼叫 UI 任務執行程式的 Engine
13269 將 flag 修改事件傳送到框架
13270 新增 recipe changelog
13274 修復 HtmlCodec 中的解碼功能檢測
13275 進一步完善 CanvasKit 後端
13292 停用易 flakiness 的測試 ShellTest_ReportTimingsIsCalled。
13295 避免在 GPU 或 IO 任務執行程式上訪問 Cocoa 檢視。
13311 [recipe] 上傳 opt flutter_tester
13314 保護 Flutter 使用的 EAGLContext
13319 將 FlutterEngineRunsAOTCompiledDartCode 新增到嵌入器 API。
13321 將 LinearTextFlag 傳遞給 SkFont - iOS13 字母間距
13337 將 dart/language_model 升級到 9fJQZ0TrnAGQKrEtuL3-AXbUfPzYxqpN_OBHr9P4hE4C
13342 在傳送之前攔截 SystemSound.play 平臺訊息。
13345 將平臺檢視 ID 暴露給嵌入器可訪問性節點
13360 根據檢視層次結構啟用 RasterCache
13361 進一步完善 CanvasKit 後端
13364 [flutter_runner] 移除 libdart profiler symbols 的檢查
13367 延遲 metal 可繪製物件的獲取直到幀提交。
13391 使用 BitmapCanvas 實現基本的 Picture.toImage
13395 修復 fml_unittes 在 presubmit 期間未執行的問題
13397 [flutter_runner] 不要重複構建 far 檔案
13401 重新格式化 BUILD.gn 檔案以符合格式檢查器的 presubmit 指令碼
13405 確保在 Flow 中直接重置矩陣時,根表面變換能夠保留。
13406 修復 GN 格式檢查器指令碼的 dry run 模式
13407 啟動 luci
13419 [dart_runner] common libs 需要存在才能執行 aot runner
13424 重新新增 isRunningInRobolectricTest
13440 將 Cirrus Dockerfile 作為 CI 使用
13444 從 CIPD 指令碼中移除 yaml 模組的使用
13448 在 fml::VisitFiles 中複製目錄 fd
13451 修復 iOS13 的 mDNS
13460 [dart] 使 intl 服務可用
13461 CIPD 需要目錄是相對路徑
13464 [recipe] 將 sky_engine 上傳到 CIPD
13468 在 FlutterActivityTest 的 FlutterEngine 建構函式中傳遞 automaticallyRegisterPlugins 標誌
13478 使用 check_output 代替 check_call
13479 列印輸出
13630 修復 Enter 鍵在多行欄位中不新增新行的 bug
13642 Issues/39832 reland
13643 確保 CAMetalLayer 的 FBO 附件可以被讀取。
13649 新增 'Cough' 測試字型並支援多種測試字型。
13695 修復 Class.forName 的 unchecked call 警告
13697 將指標事件清理移至引擎。
13708 確保在物理畫素中,裝置畫素比被計入視窗指標。
13710 修復 picture 柵格快取節流
13711 Imagefilter 包裝器物件
13719 修復 splash screen 查詢中的 NPE
13727 向 LineMetrics 新增行邊界資訊。
13728 優先使用 SchedulerBinding.addTimingsCallback
13731 將平臺檢視 mutator 堆疊暴露給自定義合成器。
13735 清理 frontend server 的過時 --strong 選項
13736 libtxt:將 RTL 布林標誌傳遞給 measureText 而不是 bidiFlags 列舉
13742 僅在未指定 --aot 時指定 --no-link-platform,回滾 dart-lang sdk
13744 即使在嵌入器提供的渲染目標被回收時,也要建立一個新的 picture recorder。
13747 將 TextRange 從 framework 移至 dart:ui。
13760 在 CanvasKit 後端實現 Path.computeMetrics
13762 根據檢視層次結構啟用 RasterCache
13765 暫時將 wordBoundary 更改為動態
13768 將 ImageFilter 和 BackdropFilter 新增到 CanvasKit 後端
13772 將 Path 和 PathMetrics 從 canvas.dart 移動到它們自己的檔案中。無變化
13780 允許傳遞熱過載除錯標誌
13781 在 VsyncWaiter 中為 UI 執行緒建立一個 WeakPtrFactory
13782 文件 FlutterPointerEvent 中點的座標空間。
13784 新增 Helvetica 和 sans-serif 作為回退字體系列
13785 修復 Rasterizer::MakeRasterSnapshot 中的 RendererContextSwitch 結果檢查
13786 在繪製陰影時考慮 devicePixelRatio
13795 在 EngineParagraphStyle.toString() 中新增缺失的逗號
13796 在 canvaskit 後端實現徑向漸變
13799 將 flutter engine 分發的 dart/language_model 版本更新為最新
13803 [build] 使 --engine-version 標誌可選
13805 從 ParagraphStyle 中移除額外的陰影
13812 保護 RendererContextSwitch 以進行 flutter 的 gl context 重構。
13829 [dart_runner] 初始化日誌記錄和跟蹤
13832 移除未使用的匯入
13848 使用 Skia 的 matchStyleCSS3 來查詢與字型樣式匹配的捆綁資源型別字型
13850 修復測試以考慮畫素比變換是框架的責任。
13851 為 CanvasKit 實現 ui.Path 的其餘方法
13869 更改測試執行器和平臺使其獨立於瀏覽器
13881 更改 getLineBoundary 的邊緣條件
13902 向 Color 類新增 opacity -> alpha 方法
13903 在 CanvasKit 後端實現基本文字渲染支援
13904 修復 withIn 匹配器距離函式查詢
13907 允許 api_conform_test 忽略 toString、hashCode 和 ==
13908 提供了在後臺應用程式的 IO 執行緒上關閉 OpenGL 操作的方法
13918 為 GPUSurfaceSoftwareDelegate 新增虛擬解構函式。
13926 將 dev_compiler 和 frontend_server 新增到包上傳規則
13934 確保在截圖時使用基礎 CompositorContext 的 AcquireFrame 方法
13943 使執行緒檢查器在 Apple 平臺上列印執行緒名稱。
13945 將 SwiftShader 更新到 5d1e854。
13962 添加了自動審查者配置檔案
13975 重構為透過 const ref 傳遞函式
14082 在 flutter web engine 中新增指標資料清理
外掛
#我們在外掛方面取得了重大改進。我們升級了一組外掛以支援 Web 開發。此外,為了支援 Add to App 場景,我們提供了一系列新 API 供現有 Android 外掛進行升級。如果您目前正在維護一個 Android 外掛。我們鼓勵您檢視遷移外掛到新 API 文件,並相應地升級您的外掛。
1984 移除 Flutterfire 外掛(已移至 FirebaseExtended)
2004 [cirrus] 為 all_plugins 測試使用 flutter create
2009 修復感測器單元測試
2036 video player 版本修復
2055 指向新的開源網站位置
2084 [update] local_auth - intl 版本
2112 執行 flutter_plugin_tools format
2141 BugFix: formatHint 是為網路流設計的。
2154 使用穩定的 Flutter 映象作為基礎
2161 重新命名 instrumentation_adapter 外掛為 e2e 外掛
2205 s/flutter_android_lifecycle/flutter_plugin_android_lifecycle/
2230 禁止 ... 實現 UrlLauncherPlatform
2231 [cleanup] 移除 AndroidX 警告
2236 使用包匯入匯入 lib/ 目錄內的檔案。
2250 使用 flutter stable 的 pub 版本進行釋出
2260 使 setMockInitialValues 處理非字首鍵
2275 將 google_maps_flutter pubspec 版本提升到與 CHANGELOG 匹配
2271 [infra] 在 CI 中忽略分析器問題
2280 新增 google_sign_in_web 外掛。
外掛:Android Alarm Manager
#我們在 Android Alarm Manager 外掛中添加了在回撥中獲取 id 的功能。
1985 [android_alarm_manager] 添加了在回撥中獲取 id 的能力
外掛:Android Intent
#我們在 Android Intent 外掛中進行了多項改進,包括添加了傳遞 intent 標誌(由社群成員貢獻!)的能力,並將其升級到新外掛 API。
2000 [android_intent] 新增 flags 選項
2045 [android_intent] 新增 action_application_details_settings
2143 [android_intent] 遷移到新的嵌入
2188 [android_intent] 提升 Flutter SDK 最低版本
2202 [android_intent] 在呼叫 resolveActivity 之前必須提供 componentName
2221 [android_intent]移除 AndroidX 約束
2268 [android_intent] 新增缺失的 DartDocs
外掛:Battery
#Battery 外掛中的通用 bug 修復。
2189 [battery] 放寬示例應用程式的最低 Flutter 版本要求
外掛:Camera
#我們將 Camera 外掛升級到了新外掛 API,並進行了一些 bug 修復。
2057 [Camera] 修復 NullPointerException
2123 [camera] 修復事件型別檢查
2219 [camera]移除 androidx 約束
外掛:Connectivity
#Connectivity 外掛中的通用 bug 修復。
2212 [connectivity]移除 AndroidX 約束
2262 [connectivity] 新增更多文件,刪除 example/README
外掛:e2e
#e2e 外掛中的通用 bug 修復。
2022 [instrumentation_adapter] 更新 README 說明
2023 [instrumentation_adapter] 更新模板以使用 @Rule 而不是 FlutterTest
2024 [instrumentation_adapter] 更新 CODEOWNERS
2051 [instrumentation_adapter] 為 release 更新
2075 [instrumentation_adapter] 將示例遷移到 AndroidX
2178 [e2e] 更新 README
2190 [e2e] 更新以支援新的嵌入器
2233 [e2e] 更新 README
外掛:Google Maps Flutter
#我們在 Google Maps 外掛中進行了多項改進,包括添加了顯示交通圖層的功能。
1702 [google_maps_flutter] Marker 拖動事件
1767 [google_maps_flutter] 添加了顯示交通圖層的支援
1784 [google_maps_flutter] 允許 CameraPosition 的(反)序列化
1933 [google_maps_flutter] 避免不必要的重繪
2053 [google_maps_flutter] 修復與 prefer_const_constructors 相關的分析器故障
2065 [google_maps_flutter] 優先使用 const 建構函式。
2076 [google_maps_flutter] 在 GoogleMap 中克隆快取的元素
2108 [google_maps_flutter] 將 Projection 方法新增到 google_maps
2113 [google_maps_flutter] 避免 AbstractMethod 崩潰
2242 [google_maps_flutter] 將 error.code 轉換為 unsigned long 以避免使用 NSInteger 作為 %ld 格式警告。
外掛:Google Sign In
#我們在 Google Sign In 外掛中進行了一些 bug 修復。同時,我們將其轉換為聯合外掛,以幫助其更有效地擴充套件到多個平臺。有關更多資訊,請參閱聯合外掛。
2059 [google_sign_in] 在錯誤處理區域修復鏈式非同步方法
2127 [google_sign_in] 透過升級 CocoaPod 到 5.0 來修復已棄用的 API 使用問題
2244 [google_sign_in] 將外掛移動到其子目錄中,以允許聯合實現
2252 [google_sign_in] 在 GoogleUserCircleAvatar 中處理新樣式的 URL
2266 [google_sign_in] 移植外掛以使用聯合 Platform Interface
外掛:Image Picker
#Image Picker 外掛中的通用 bug 修復。
2070 [image_picker] 當源影像方向為 left 或 right 時,交換寬度和高度
2293 [image_picker]修復選擇非影像檔案時崩潰的問題。
外掛:In App Purchase
#In App Purchase 外掛中的通用 bug 修復。
2014 [In_App_Purchase] 避免了後臺註冊時可能的 NullPointerException。
2016 [In_App_Purchase] 提高可測試性
2027 [in_app_purchase] 移除已跳過的 driver 測試
2215 [in_app_purchase] 移除 AndroidX 約束
外掛:Local Auth
#Local Auth 外掛中的通用 bug 修復。
2047 [local_auth] 在面部解鎖時避免使用者確認
2111 [local_auth] 停止認證的 API
外掛:Package Info
#Package Info 外掛中的通用 bug 修復。
2218 [package_info]移除 AndroidX 約束
外掛:Path Provider
#在 Path Provider 外掛中,我們添加了 getApplicationLibraryDirectory,這是由社群成員貢獻的!
1953 [path_provider] 新增 getApplicationLibraryDirectory
1993 [pathprovider] 修復 fall through bug
2288 [path_provider] 新增缺失的 DartDocs
外掛:Share
#Share 外掛中的文件更新。
2297 [share] README 更新
外掛:Shared Preferences
#Shared Preferences 外掛中的通用 bug 修復。
2241 [Shared_preferences]抑制警告
2296 [shared_preferences] 新增缺失的 DartDoc
外掛:Url launcher
#我們已將 Url launcher 外掛升級到新外掛 API,並修復了一些 bug。同時,我們已將 Url launcher 轉換為聯合外掛,以幫助其更有效地擴充套件到多個平臺。有關更多資訊,請參閱聯合外掛。
2038 [url_launcher] 初始化期間移除對 rootViewController 的引用
2136 [url_launcher_web] 修復 README.md pubspec 示例
2217 [url_launcher] 新增 url_launcher_platform_interface 包
2220 [url_launcher]remove AndroidX constraint
2228 [url_launcher] 使用 url_launcher_platform_interface 處理呼叫
2237 [url_launcher] 將 url_launcher_web 遷移到平臺介面
2274 [url_launcher] DartDoc 和測試改進
外掛:Video Player
#我們將 Video Player 外掛升級到了新外掛 API,並進行了一些 bug 修復。同時,我們已將其轉換為聯合外掛,以幫助其更有效地擴充套件到多個平臺。有關更多資訊,請參閱聯合外掛。
1813 [video-player] 新增對內容 URI 作為 url 的支援
1998 [video_player] 修復已棄用成員使用
2124 [video_player] 將 [player dispose] 移至 onUnregistered
2158 [video_player] VideoPlayerController 初始化基本測試
2273 [video_player] 新增平臺介面
2286 [video_player] 改進 DartDocs 和測試覆蓋率
外掛:Webview Flutter
#我們將 Webview Flutter 外掛升級到了新外掛 API,並進行了一些 bug 修復。
1996 [webview_flutter] 允許 JavaScript Channel 名稱中的下劃線
2257 [webview_flutter] 新增非同步 NavigationDelegates
工具
#Flutter 工具也是這個版本的重要投資。我們推出了新版本的DartPad,允許您直接在瀏覽器中玩 Flutter,而無需安裝任何東西;釋出了一個新功能“Hot UI”(預覽版),允許您直接在 IDE 中與小部件互動;增強了 Dart DevTools,增加了一個新的視覺化佈局檢視;在 Visual Studio Code 中啟用了同時多裝置除錯;並添加了對“golden”影像測試的支援。
除了下面列出的 PR 之外,請也檢視以下 IntelliJ 和 Android Studio Flutter 外掛、VS Code Flutter 外掛和 Dart DevTools 的版本:
VS Code
#- 2019 年 10 月 1 日:dartcode.org/releases/v3-5/
- 2019 年 11 月 1 日:dartcode.org/releases/v3-6/
- 2019 年 12 月 5 日:dartcode.org/releases/v3-7/
Flutter IntelliJ 和 Android Studio 外掛
#- 2019 年 10 月 1 日:Flutter IntelliJ 外掛 M40 Release
- 2019 年 11 月 1 日:Flutter IntelliJ 外掛 M41 Release
- 2019 年 12 月 5 日:Flutter IntelliJ 外掛 M42 Release
DevTools
#- 2019 年 10 月 2 日:新 Dart DevTools Release 0.1.8
- 2019 年 10 月 17 日:新 Dart DevTools Release 0.1.9
- 2019 年 11 月 8 日:新 Dart DevTools Release 0.1.11
- 2019 年 12 月 6 日:新 Dart DevTools Release 0.1.12
工具 PR
#37508 使用 assemble 構建 bundle
37642 build.dart::GenSnapshot 的單元測試
37832 為 devicelab runner 新增 --exit 和 --match-host-platform 預設值
37845 將錯誤訊息 echo 到 stderr
38560 重構 cocoapods 驗證器以檢測損壞的安裝
38576 flutter_tools/version: git log.showSignature=false
38632 Flutter Plugin Tool 支援多平臺外掛配置
38654 [flutter_tool] 移除一些非同步檔案 io
38869 為每個構建配置儲存檔案雜湊。
38894 [flutter_tool] 將 http 請求關閉移至 try-catch
38907 當熱過載進入錯誤狀態時丟擲錯誤
38920 [flutter_tool] 處理 doctor validator 的崩潰
38925 [flutter_tool] 每個執行只發送一個崩潰報告
38932 為非 debug 桌面構建新增構建警告
39000 呼叫 assemble 時不丟擲 StateError
39005 [flutter_tool] 教崩潰報告程式處理 HttpException
39013 將包版本更新到最新
39052 使 forward 呼叫互動式執行
39136 [flutter_tool] 為 'version' 提供一些額外的輸入驗證
39140 將命令移到它們自己的分片中
39147 降低 AndroidX 警告級別
39274 在 assemble 規則中使用 output dir 代替特定路徑
39280 [flutter_tool] 為 xcode showBuildSettings 設定超時
39358 報告 build runner 的錯誤
39445 [flutter_tool] 向 asyncGuard 新增 onError 回撥。在 Doctor 中使用它
39524 在 flutter_tools 中註冊 flutterVersion 服務。
39530 保留 profile 的符號
39541 處理單個不支援的裝置
39555 使用功能標誌來控制構建命令的可見性
39558 從 skip build 指令碼檢查中過濾錯誤訊息
39579 [flutter_tools] 為另一個 showBuildSettings 命令新增超時
39654 使用持久化構建資訊自動清理舊輸出
39699 檢測何時覆蓋 MingW 的 Git Bash,修復路徑
39781 將 lib/generated_plugin_registrant.dart 新增到 gitignore
39782 允許為 Xcode getInfo 指定專案
39899 [flutter_tool] process.dart 清理
39997 移除 visibleForTesting 註解;此建構函式在外部使用…
40029 [BUG] 處理 intent-filter 的所有子項,而不是僅處理第一個子項,以識別預設活動
40131 確保我們使用來自 Flutter SDK 的 pub
40159 [flutter_tool] 在嘗試排空流之前終止超時程序
40171 將熱過載工件放置在臨時目錄中
40195 使 Swift 外掛模板符合 swift-format 標準
40210 確保我們使用 dwds 啟動
40259 從庫中移除 io 和 isolate
40366 將現有 dill 放入熱過載臨時目錄以提高初始化時間
40368 確保 dart2js 不會編譯不支援的包
40397 在未安裝 VS 時列出必需的元件
40410 移除 flutter tool 對 protobuf 的使用
40435 [flutter_tool] 移除同步的 -showBuildSettings
40472 啟動桌面應用程式時不要終止其他程序
40783 確保除錯構建只能透過 run 訪問
40795 更新工具鏈描述以請求最新版本
40968 在 flutter_tools 中新增缺失的尾隨逗號
40988 [flutter_tool] 在命令分析事件中報告 RSS 高水位線
41224 修復 flutter 報告錯誤,修正本地小部件
41304 [flutter_tools] 允許新增多個訊號處理程式
41401 沒有 --precompiled 的 Flutter build bundle 應始終執行除錯構建。
41406 在 devfs 上傳失敗時重試。
41424 在編譯被拒絕時不要更新最後編譯時間
41447 切換到 assemble API 用於 dart2js
41493 [flutter_tool] 當工具被訊號終止時,報告給分析
41514 確保我們能在本地引擎中找到 dart.exe
41519 僅將 desktop stopApp 應用於 Flutter 啟動的程序
41583 新增除錯選項,在啟動後將 vmservice 地址寫入檔案
41610 在 build_runner 中跟蹤未使用的輸入
41621 將 mDNS 發現中的日誌記錄更改為僅在 verbose 模式下顯示
41652 [flutter_tools] 為 pub get 失敗事件新增更多資訊
41687 在 test_utils getPackages() 中使用 processManager.run() 而不是手動捕獲流
41697 處理 Flutter tool 中預構建工件的缺失 .packages 檔案
41735 處理資源列表中的空條目並新增更明確的驗證
41751 新增對下載 x86 JIT release artifact 的支援
41788 透過移除單個使用的檔案來減少日誌詳細程度
41832 在除錯模式下將 --enable-asserts 傳遞給 frontend_server 呼叫…
41862 將輸出目錄設為構建輸入
41989 Flutter doctor 應要求 Java 1.8+
42008 稍微重構 ProjectFileInvalidator.findInvalidated
42016 [flutter_tool] 重做分析事件以使用標籤和值
42026 停止洩漏 iproxy 程序
42028 使 ProjectFileInvalidator.findInvalidated 能夠使用非同步 FileStat.stat
42187 pub 失敗時更詳細地顯示錯誤資訊
42209 為 flutter generate 新增錯誤日誌記錄
42243 改進尾隨空格訊息
42252 捕獲 Make 的引數錯誤
42353 向 drive 和 run 新增 --cache-sksl 標誌
42354 將 -Ddart.developer.causal_async_stacks=true 傳遞給 frontend_server 呼叫。
42364 將 dwds 包裝在 async 守衛中,僅捕獲已知的錯誤型別
42373 使用 process utils 切換構建命令
42376 新增預快取未簽名 Mac 二進位制檔案的選項。
42471 將構建模式特定的位元組碼生成選項傳遞給 frontend_server。
42476 重構 BuildMode 為類,新增 jit_release 配置
42491 對 pub 修改時間斷言進行額外的防禦性程式設計
42538 [flutter_tool] 改進 yaml 字型對映驗證
42597 修正萬用字元資源測試的抖動問題
42655 resident_web_runner 沒有關閉除錯連線
42656 捕獲 AppConnectionException 錯誤
42668 為 run_cold.dart 在 cleanupAtFinish() 中處置裝置
42698 確保在瀏覽器連線完成後停止狀態顯示
42791 修復 manifest 資源包中的型別錯誤
42813 修復 Chrome Device 中的 NPE
42972 遇到服務響應中的新型別時不要產生錯誤。
42977 切換 dart2js 構建為 depfile,移除 Source.function
43016 確保可以在除錯模式下停用 --track-widget-creation
43022 在 drive 中啟用 dump-skp-on-shader-compilation
43042 將 samsungexynos7570 新增到已知物理裝置列表中
43080 使用 4 個空格縮排 Kotlin 程式碼
43180 在外掛驗證檢查中新增缺失的 break
43217 [flutter_tool] 更新分析策略,在停用時傳送事件
43219 為增量編譯器 JavaScript 包新增 devfs
43225 捕獲 io.StdinException,它可能由於無法設定 stdin echo/line 模式而發生
43281 新增編譯器配置以支援 dartdevc 目標
43292 增量編譯器支援的初始引導指令碼
43381 [flutter_tool] 使用 engine flutter_runner 預構建件
43390 捕獲 dwds 的 ChromeDebugException
43401 處理 flutter clean 期間的許可權錯誤
43402 處理 vswhere 的格式錯誤
43403 處理版本和選項偏差錯誤
43436 處理具有可選引數的 onError 回撥
43448 不要在外掛登錄檔模板中對 HTML 進行轉義。
43471 預設啟用 track widget creation
43544 捕獲 AppConnectionException
43546 別名 upgrade-packages => update-packages
43577 為桌面構建設定 trace 為 true
43586 確保在標籤關閉時關閉 Chrome
43598 捕獲失敗的守護程序啟動錯誤
43599 捕獲解析 FLUTTER_STORAGE_BASE_URL 失敗的錯誤
43602 不要無限期地持久化檔案雜湊,處理更多錯誤情況
43667 為 sourceReport 對映中的 ranges 添加了 null 檢查。
43725 新增 reloadMethod RPC
43753 將 --no-gen-bytecode 傳遞給 aot 核心編譯器呼叫
43764 更新 create.dart
43767 檢查 libimobiledevice 可執行檔案是否存在
43800 修復 logger 測試的抖動問題
43862 確保始終傳遞目標平臺
43870 檢查 instanceof 而不是 runtimeType
43907 在 release dev 伺服器上提供正確的 mime 型別
43908 移除 --no-gen-bytecode 標誌
43945 移除 Source.behavior,修復 depfile 無效化中的 bug
44017 資源伺服器修復 sourcemaps 問題
44027 允許指定 device-vmservice-port 和 host-vmservice-port
44032 將 chrome 首選項複製到 seeded data 目錄
44052 移除 flutter_tool services 程式碼
44083 新增 --dart-define 選項
44119 [flutter_tool] --flutter_runner 將下載除錯符號
44146 移除 flutter.yaml 遷移程式碼
44200 使 ProjectFileInvalidator 可注入
44221 使用平臺相容的檔案路徑
44227 [flutter_tool] 截圖命令必須僅對 _kDeviceType 需要裝置
44278 不向 front-end server 傳遞已棄用的 --strong 選項
44279 profile 模式下 link platform 應為 true
44360 [flutter_tool] 將工件下載流式傳輸到檔案
44447 flutter_tools/lib 上的 implicit-casts:false
44481 為 target 類提供特定欄位以接受 depfiles
44488 testbed.run 和 testbed.test 的重構
44574 當修改設定時,列印一條訊息,提示您可能需要重新載入 IDE/編輯器
44608 減少一些直接使用 package:archive 的情況
44753 始終連結桌面平臺
44868 在 doctor 期間捕獲並顯示版本檢查錯誤
44933 [flutter_tool] 在刪除下載的工件失敗時不要崩潰
44966 在構建失敗時不要將堆疊跟蹤記錄到控制檯
45011 在 IOSDevice.startApp() 中捕獲 IOSDeviceNotFoundError
45153 flutter_tools 上的 implicit-casts:false
45236 透過與平臺構建併發初始化 frontend_server,提高開發速度
45239 fuchsia_remote_debug_protocol 上的 implicit-casts:false
45303 允許 pubspec 外掛部分中的未知欄位
45317 在守護程序模式下反轉 dartDefines 的 null 值
45319 捕獲損壞配置的解析錯誤
45364 允許外掛平臺使用 no-op default_package 鍵
43544 捕獲 AppConnectionException
46011 [flutter_tool] 在執行“升級”操作時,如果它是無操作,則不要繼續。
完整 PR 列表
#有關 1.12 發行版中已合併的 PR 的完整列表,請參見此列表。