i2edu 4 éve
szülő
commit
266b348163

+ 38 - 37
.idea/workspace.xml

@@ -9,6 +9,19 @@
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/example/.flutter-plugins-dependencies" beforeDir="false" afterPath="$PROJECT_DIR$/example/.flutter-plugins-dependencies" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/.idea/workspace.xml" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/example/.flutter-plugins-dependencies" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/example/.flutter-plugins-dependencies" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/example/ios/Flutter/Flutter.podspec" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/example/ios/Flutter/Flutter.podspec" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/example/ios/Podfile" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/example/ios/Podfile" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/example/ios/Podfile.lock" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/example/ios/Podfile.lock" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/example/ios/Runner.xcodeproj/project.pbxproj" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/example/ios/Runner.xcodeproj/project.pbxproj" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/example/pubspec.lock" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/.symlinks/plugins/speech_plugin/example/pubspec.lock" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/example/ios/Flutter/Flutter.podspec" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/Flutter/Flutter.podspec" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/example/ios/Podfile" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/Podfile" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/example/ios/Podfile.lock" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/Podfile.lock" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/example/ios/Runner.xcodeproj/project.pbxproj" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/Runner.xcodeproj/project.pbxproj" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata" beforeDir="false" afterPath="$PROJECT_DIR$/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/example/pubspec.lock" beforeDir="false" afterPath="$PROJECT_DIR$/example/pubspec.lock" afterDir="false" />
     </list>
     <list id="945f3ef8-5765-4e60-a74f-d6581cfff137" name="Revert: " comment="" />
     <option name="SHOW_DIALOG" value="false" />
@@ -29,6 +42,7 @@
   <component name="Git.Settings">
     <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
     <option name="RESET_MODE" value="MIXED" />
+    <option name="UPDATE_TYPE" value="MERGE" />
   </component>
   <component name="ProjectFrameBounds">
     <option name="y" value="23" />
@@ -44,6 +58,7 @@
   <component name="PropertiesComponent">
     <property name="SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
     <property name="dart.analysis.tool.window.force.activate" value="false" />
+    <property name="io.flutter.reload.alreadyRun" value="true" />
     <property name="last_opened_file_path" value="$PROJECT_DIR$/android/src/main/jniLibs" />
     <property name="settings.editor.selected.configurable" value="flutter.settings" />
     <property name="show.migrate.to.gradle.popup" value="false" />
@@ -83,7 +98,14 @@
       <option name="project" value="LOCAL" />
       <updated>1595317127578</updated>
     </task>
-    <option name="localTasksCounter" value="3" />
+    <task id="LOCAL-00003" summary="更新语音评测问题">
+      <created>1600824874578</created>
+      <option name="number" value="00003" />
+      <option name="presentableId" value="LOCAL-00003" />
+      <option name="project" value="LOCAL" />
+      <updated>1600824874578</updated>
+    </task>
+    <option name="localTasksCounter" value="4" />
     <servers />
   </component>
   <component name="Vcs.Log.Tabs.Properties">
@@ -91,7 +113,9 @@
       <map>
         <entry key="MAIN">
           <value>
-            <State />
+            <State>
+              <option name="COLUMN_ORDER" />
+            </State>
           </value>
         </entry>
       </map>
@@ -101,52 +125,29 @@
     <MESSAGE value="更新讯飞语音库,修复IOS读取不到NSData的问题" />
     <MESSAGE value="返回版本" />
     <MESSAGE value="更新讯飞语音评测库" />
-    <option name="LAST_COMMIT_MESSAGE" value="更新讯飞语音评测库" />
+    <MESSAGE value="更新语音评测问题" />
+    <option name="LAST_COMMIT_MESSAGE" value="更新语音评测问题" />
   </component>
   <component name="WindowStateProjectService">
-    <state x="573" y="116" key="CommitChangelistDialog2" timestamp="1595317149882">
-      <screen x="0" y="23" width="1920" height="985" />
-    </state>
-    <state x="573" y="116" key="CommitChangelistDialog2/0.23.1920.985@0.23.1920.985" timestamp="1595317149882" />
-    <state x="100" y="123" width="1720" height="785" key="DiffContextDialog" timestamp="1595316290321">
-      <screen x="0" y="23" width="1920" height="985" />
-    </state>
-    <state x="100" y="123" width="1720" height="785" key="DiffContextDialog/0.23.1920.985@0.23.1920.985" timestamp="1595316290321" />
-    <state width="1878" height="238" key="GridCell.Tab.0.bottom" timestamp="1595318349292">
-      <screen x="0" y="23" width="1920" height="985" />
-    </state>
-    <state width="1878" height="238" key="GridCell.Tab.0.bottom/0.23.1920.985@0.23.1920.985" timestamp="1595318349292" />
-    <state width="1878" height="238" key="GridCell.Tab.0.center" timestamp="1595318349291">
-      <screen x="0" y="23" width="1920" height="985" />
-    </state>
-    <state width="1878" height="238" key="GridCell.Tab.0.center/0.23.1920.985@0.23.1920.985" timestamp="1595318349291" />
-    <state width="1878" height="238" key="GridCell.Tab.0.left" timestamp="1595318349291">
-      <screen x="0" y="23" width="1920" height="985" />
-    </state>
-    <state width="1878" height="238" key="GridCell.Tab.0.left/0.23.1920.985@0.23.1920.985" timestamp="1595318349291" />
-    <state width="1878" height="238" key="GridCell.Tab.0.right" timestamp="1595318349292">
-      <screen x="0" y="23" width="1920" height="985" />
-    </state>
-    <state width="1878" height="238" key="GridCell.Tab.0.right/0.23.1920.985@0.23.1920.985" timestamp="1595318349292" />
-    <state x="548" y="265" key="IDE.errors.dialog" timestamp="1595314489576">
+    <state width="1878" height="328" key="GridCell.Tab.0.bottom" timestamp="1619516131196">
       <screen x="0" y="23" width="1920" height="985" />
     </state>
-    <state x="548" y="265" key="IDE.errors.dialog/0.23.1920.985@0.23.1920.985" timestamp="1595314489576" />
-    <state x="670" y="238" key="MultipleFileMergeDialog" timestamp="1595316428501">
+    <state width="1878" height="328" key="GridCell.Tab.0.bottom/0.23.1920.985@0.23.1920.985" timestamp="1619516131196" />
+    <state width="1878" height="328" key="GridCell.Tab.0.center" timestamp="1619516131196">
       <screen x="0" y="23" width="1920" height="985" />
     </state>
-    <state x="670" y="238" key="MultipleFileMergeDialog/0.23.1920.985@0.23.1920.985" timestamp="1595316428501" />
-    <state x="710" y="233" key="RollbackChangesDialog" timestamp="1595316321672">
+    <state width="1878" height="328" key="GridCell.Tab.0.center/0.23.1920.985@0.23.1920.985" timestamp="1619516131196" />
+    <state width="1878" height="328" key="GridCell.Tab.0.left" timestamp="1619516131196">
       <screen x="0" y="23" width="1920" height="985" />
     </state>
-    <state x="710" y="233" key="RollbackChangesDialog/0.23.1920.985@0.23.1920.985" timestamp="1595316321672" />
-    <state x="461" y="154" key="SettingsEditor" timestamp="1595314442329">
+    <state width="1878" height="328" key="GridCell.Tab.0.left/0.23.1920.985@0.23.1920.985" timestamp="1619516131196" />
+    <state width="1878" height="328" key="GridCell.Tab.0.right" timestamp="1619516131196">
       <screen x="0" y="23" width="1920" height="985" />
     </state>
-    <state x="461" y="154" key="SettingsEditor/0.23.1920.985@0.23.1920.985" timestamp="1595314442329" />
-    <state x="560" y="255" key="Vcs.Push.Dialog.v2" timestamp="1595317129102">
+    <state width="1878" height="328" key="GridCell.Tab.0.right/0.23.1920.985@0.23.1920.985" timestamp="1619516131196" />
+    <state x="740" y="439" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2" timestamp="1619515820388">
       <screen x="0" y="23" width="1920" height="985" />
     </state>
-    <state x="560" y="255" key="Vcs.Push.Dialog.v2/0.23.1920.985@0.23.1920.985" timestamp="1595317129102" />
+    <state x="740" y="439" key="com.intellij.openapi.vcs.update.UpdateOrStatusOptionsDialogupdate-v2/0.23.1920.985@0.23.1920.985" timestamp="1619515820388" />
   </component>
 </project>

+ 1 - 1
example/.flutter-plugins-dependencies

@@ -1 +1 @@
-{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"speech_plugin","path":"/Users/i2edu/Documents/workspace/speech_lib/","dependencies":[]}],"android":[{"name":"speech_plugin","path":"/Users/i2edu/Documents/workspace/speech_lib/","dependencies":[]}],"macos":[],"linux":[],"windows":[],"web":[]},"dependencyGraph":[{"name":"speech_plugin","dependencies":[]}],"date_created":"2020-07-21 14:58:35.615254","version":"1.17.0"}
+{"info":"This is a generated file; do not edit or check into version control.","plugins":{"ios":[{"name":"speech_plugin","path":"/Users/i2edu/Documents/workspace/speech_lib/","dependencies":[]}],"android":[{"name":"speech_plugin","path":"/Users/i2edu/Documents/workspace/speech_lib/","dependencies":[]}],"macos":[],"linux":[],"windows":[],"web":[]},"dependencyGraph":[{"name":"speech_plugin","dependencies":[]}],"date_created":"2021-04-27 17:30:54.085476","version":"2.0.4"}

+ 4 - 4
example/ios/Flutter/Flutter.podspec

@@ -1,18 +1,18 @@
 #
 # NOTE: This podspec is NOT to be published. It is only used as a local source!
+#       This is a generated file; do not edit or check into version control.
 #
 
 Pod::Spec.new do |s|
   s.name             = 'Flutter'
   s.version          = '1.0.0'
   s.summary          = 'High-performance, high-fidelity mobile apps.'
-  s.description      = <<-DESC
-Flutter provides an easy and productive way to build and deploy high-performance mobile apps for Android and iOS.
-                       DESC
   s.homepage         = 'https://flutter.io'
   s.license          = { :type => 'MIT' }
   s.author           = { 'Flutter Dev Team' => 'flutter-dev@googlegroups.com' }
   s.source           = { :git => 'https://github.com/flutter/engine', :tag => s.version.to_s }
   s.ios.deployment_target = '8.0'
-  s.vendored_frameworks = 'Flutter.framework'
+  # Framework linking is handled by Flutter tooling, not CocoaPods.
+  # Add a placeholder to satisfy `s.dependency 'Flutter'` plugin podspecs.
+  s.vendored_frameworks = 'path/to/nothing'
 end

+ 14 - 63
example/ios/Podfile

@@ -10,78 +10,29 @@ project 'Runner', {
   'Release' => :release,
 }
 
-def parse_KV_file(file, separator='=')
-  file_abs_path = File.expand_path(file)
-  if !File.exists? file_abs_path
-    return [];
+def flutter_root
+  generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
+  unless File.exist?(generated_xcode_build_settings_path)
+    raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
   end
-  generated_key_values = {}
-  skip_line_start_symbols = ["#", "/"]
-  File.foreach(file_abs_path) do |line|
-    next if skip_line_start_symbols.any? { |symbol| line =~ /^\s*#{symbol}/ }
-    plugin = line.split(pattern=separator)
-    if plugin.length == 2
-      podname = plugin[0].strip()
-      path = plugin[1].strip()
-      podpath = File.expand_path("#{path}", file_abs_path)
-      generated_key_values[podname] = podpath
-    else
-      puts "Invalid plugin specification: #{line}"
-    end
-  end
-  generated_key_values
-end
-
-target 'Runner' do
-  # Flutter Pod
-
-  copied_flutter_dir = File.join(__dir__, 'Flutter')
-  copied_framework_path = File.join(copied_flutter_dir, 'Flutter.framework')
-  copied_podspec_path = File.join(copied_flutter_dir, 'Flutter.podspec')
-  unless File.exist?(copied_framework_path) && File.exist?(copied_podspec_path)
-    # Copy Flutter.framework and Flutter.podspec to Flutter/ to have something to link against if the xcode backend script has not run yet.
-    # That script will copy the correct debug/profile/release version of the framework based on the currently selected Xcode configuration.
-    # CocoaPods will not embed the framework on pod install (before any build phases can generate) if the dylib does not exist.
 
-    generated_xcode_build_settings_path = File.join(copied_flutter_dir, 'Generated.xcconfig')
-    unless File.exist?(generated_xcode_build_settings_path)
-      raise "Generated.xcconfig must exist. If you're running pod install manually, make sure flutter pub get is executed first"
-    end
-    generated_xcode_build_settings = parse_KV_file(generated_xcode_build_settings_path)
-    cached_framework_dir = generated_xcode_build_settings['FLUTTER_FRAMEWORK_DIR'];
-
-    unless File.exist?(copied_framework_path)
-      FileUtils.cp_r(File.join(cached_framework_dir, 'Flutter.framework'), copied_flutter_dir)
-    end
-    unless File.exist?(copied_podspec_path)
-      FileUtils.cp(File.join(cached_framework_dir, 'Flutter.podspec'), copied_flutter_dir)
-    end
+  File.foreach(generated_xcode_build_settings_path) do |line|
+    matches = line.match(/FLUTTER_ROOT\=(.*)/)
+    return matches[1].strip if matches
   end
+  raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
+end
 
-  # Keep pod path relative so it can be checked into Podfile.lock.
-  pod 'Flutter', :path => 'Flutter'
+require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
 
-  # Plugin Pods
+flutter_ios_podfile_setup
 
-  # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock
-  # referring to absolute paths on developers' machines.
-  system('rm -rf .symlinks')
-  system('mkdir -p .symlinks/plugins')
-  plugin_pods = parse_KV_file('../.flutter-plugins')
-  plugin_pods.each do |name, path|
-    symlink = File.join('.symlinks', 'plugins', name)
-    File.symlink(path, symlink)
-    pod name, :path => File.join(symlink, 'ios')
-  end
+target 'Runner' do
+  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
 end
 
-# Prevent Cocoapods from embedding a second Flutter framework and causing an error with the new Xcode build system.
-install! 'cocoapods', :disable_input_output_paths => true
-
 post_install do |installer|
   installer.pods_project.targets.each do |target|
-    target.build_configurations.each do |config|
-      config.build_settings['ENABLE_BITCODE'] = 'NO'
-    end
+    flutter_additional_ios_build_settings(target)
   end
 end

+ 3 - 3
example/ios/Podfile.lock

@@ -14,9 +14,9 @@ EXTERNAL SOURCES:
     :path: ".symlinks/plugins/speech_plugin/ios"
 
 SPEC CHECKSUMS:
-  Flutter: 0e3d915762c693b495b44d77113d4970485de6ec
+  Flutter: 434fef37c0980e73bb6479ef766c45957d4b510c
   speech_plugin: f602a06719916976112860387281f36605d99a56
 
-PODFILE CHECKSUM: 3dbe063e9c90a5d7c9e4e76e70a821b9e2c1d271
+PODFILE CHECKSUM: 8e679eca47255a8ca8067c4c67aab20e64cb974d
 
-COCOAPODS: 1.9.1
+COCOAPODS: 1.10.0

+ 3 - 19
example/ios/Runner.xcodeproj/project.pbxproj

@@ -149,7 +149,6 @@
 				97C146EC1CF9000F007C117D /* Resources */,
 				9705A1C41CF9048500538489 /* Embed Frameworks */,
 				3B06AD1E1E4923F5004D2608 /* Thin Binary */,
-				C9816D6ACD4932443EF75500 /* [CP] Embed Pods Frameworks */,
 				669486AE96A3269861E0886A /* [CP] Copy Pods Resources */,
 			);
 			buildRules = (
@@ -229,9 +228,12 @@
 			files = (
 			);
 			inputPaths = (
+				"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh",
+				"${PODS_ROOT}/../.symlinks/plugins/speech_plugin/ios/Classes/Libraries/libai/aiengine.provision",
 			);
 			name = "[CP] Copy Pods Resources";
 			outputPaths = (
+				"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/aiengine.provision",
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 			shellPath = /bin/sh;
@@ -274,21 +276,6 @@
 			shellPath = /bin/sh;
 			shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build";
 		};
-		C9816D6ACD4932443EF75500 /* [CP] Embed Pods Frameworks */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			name = "[CP] Embed Pods Frameworks";
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh\"\n";
-			showEnvVarsInLog = 0;
-		};
 /* End PBXShellScriptBuildPhase section */
 
 /* Begin PBXSourcesBuildPhase section */
@@ -326,7 +313,6 @@
 /* Begin XCBuildConfiguration section */
 		249021D3217E4FDB00AE95B9 /* Profile */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
 			buildSettings = {
 				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
 				ALWAYS_SEARCH_USER_PATHS = NO;
@@ -404,7 +390,6 @@
 		};
 		97C147031CF9000F007C117D /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
 			buildSettings = {
 				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
 				ALWAYS_SEARCH_USER_PATHS = NO;
@@ -461,7 +446,6 @@
 		};
 		97C147041CF9000F007C117D /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
 			buildSettings = {
 				ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
 				ALWAYS_SEARCH_USER_PATHS = NO;

+ 7 - 7
example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata

@@ -1,7 +1,7 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Workspace
-   version = "1.0">
-   <FileRef
-      location = "group:Runner.xcodeproj">
-   </FileRef>
-</Workspace>
+<?xml version="1.0" encoding="UTF-8"?>
+<Workspace
+   version = "1.0">
+   <FileRef
+      location = "self:">
+   </FileRef>
+</Workspace>

+ 33 - 68
example/pubspec.lock

@@ -1,62 +1,48 @@
 # Generated by pub
 # See https://dart.dev/tools/pub/glossary#lockfile
 packages:
-  archive:
-    dependency: transitive
-    description:
-      name: archive
-      url: "https://pub.flutter-io.cn"
-    source: hosted
-    version: "2.0.13"
-  args:
-    dependency: transitive
-    description:
-      name: args
-      url: "https://pub.flutter-io.cn"
-    source: hosted
-    version: "1.6.0"
   async:
     dependency: transitive
     description:
       name: async
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.4.1"
+    version: "2.5.0"
   boolean_selector:
     dependency: transitive
     description:
       name: boolean_selector
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.0.0"
-  charcode:
+    version: "2.1.0"
+  characters:
     dependency: transitive
     description:
-      name: charcode
+      name: characters
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.1.3"
-  collection:
+    version: "1.1.0"
+  charcode:
     dependency: transitive
     description:
-      name: collection
+      name: charcode
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.14.12"
-  convert:
+    version: "1.2.0"
+  clock:
     dependency: transitive
     description:
-      name: convert
+      name: clock
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.1.1"
-  crypto:
+    version: "1.1.0"
+  collection:
     dependency: transitive
     description:
-      name: crypto
+      name: collection
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.1.4"
+    version: "1.15.0"
   cupertino_icons:
     dependency: "direct main"
     description:
@@ -64,6 +50,13 @@ packages:
       url: "https://pub.flutter-io.cn"
     source: hosted
     version: "0.1.3"
+  fake_async:
+    dependency: transitive
+    description:
+      name: fake_async
+      url: "https://pub.flutter-io.cn"
+    source: hosted
+    version: "1.2.0"
   flutter:
     dependency: "direct main"
     description: flutter
@@ -74,48 +67,27 @@ packages:
     description: flutter
     source: sdk
     version: "0.0.0"
-  image:
-    dependency: transitive
-    description:
-      name: image
-      url: "https://pub.flutter-io.cn"
-    source: hosted
-    version: "2.1.12"
   matcher:
     dependency: transitive
     description:
       name: matcher
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "0.12.6"
+    version: "0.12.10"
   meta:
     dependency: transitive
     description:
       name: meta
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.1.8"
+    version: "1.3.0"
   path:
     dependency: transitive
     description:
       name: path
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.6.4"
-  petitparser:
-    dependency: transitive
-    description:
-      name: petitparser
-      url: "https://pub.flutter-io.cn"
-    source: hosted
-    version: "2.4.0"
-  quiver:
-    dependency: transitive
-    description:
-      name: quiver
-      url: "https://pub.flutter-io.cn"
-    source: hosted
-    version: "2.1.3"
+    version: "1.8.0"
   sky_engine:
     dependency: transitive
     description: flutter
@@ -127,7 +99,7 @@ packages:
       name: source_span
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.7.0"
+    version: "1.8.0"
   speech_plugin:
     dependency: "direct dev"
     description:
@@ -141,55 +113,48 @@ packages:
       name: stack_trace
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.9.3"
+    version: "1.10.0"
   stream_channel:
     dependency: transitive
     description:
       name: stream_channel
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.0.0"
+    version: "2.1.0"
   string_scanner:
     dependency: transitive
     description:
       name: string_scanner
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.0.5"
+    version: "1.1.0"
   term_glyph:
     dependency: transitive
     description:
       name: term_glyph
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.1.0"
+    version: "1.2.0"
   test_api:
     dependency: transitive
     description:
       name: test_api
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "0.2.15"
+    version: "0.2.19"
   typed_data:
     dependency: transitive
     description:
       name: typed_data
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "1.1.6"
+    version: "1.3.0"
   vector_math:
     dependency: transitive
     description:
       name: vector_math
       url: "https://pub.flutter-io.cn"
     source: hosted
-    version: "2.0.8"
-  xml:
-    dependency: transitive
-    description:
-      name: xml
-      url: "https://pub.flutter-io.cn"
-    source: hosted
-    version: "3.6.1"
+    version: "2.1.0"
 sdks:
-  dart: ">=2.6.0 <3.0.0"
+  dart: ">=2.12.0-0.0 <3.0.0"