You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter 3.10.0更新后iOS模拟器出现通道连接PlatformException错误

Flutter 3.10.0稳定版升级后iOS端Firebase初始化错误排查

问题现象

将Flutter升级至3.10.0稳定版后,运行actify_app时iOS模拟器出现以下错误,Android模拟器可正常运行:

[VERBOSE-2:dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null)
#0 FirebaseCoreHostApi.initializeCore (package:firebase_core_platform_interface/src/pigeon/messages.pigeon.dart:210:7)
#1 MethodChannelFirebase._initializeCore (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:29:44)
#2 MethodChannelFirebase.initializeApp (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:73:7)
#3 Firebase.initializeApp (package:firebase_core/src/firebase.dart:43:31)
#4 main (package:actify_app/main.dart:49:3)
Syncing files to device iPhone 14 Plus... 385ms

已尝试相关方案未解决,以下是环境信息、pubspec.yaml及Podfile内容,求解决思路。


环境信息

  • ✅ Flutter(稳定版通道,3.10.0,运行于macOS 13.3.1 22E772610a darwin-x64,语言区域en-DE)
    • Flutter版本3.10.0,路径:/Users/tristanwieser/Developer/flutter
    • 框架版本:84a1e904f4(8天前,2023-05-09 07:41:44 -0700)
    • 引擎版本:d44b5a94c9
    • Dart版本:3.0.0
    • DevTools版本:2.23.1
  • ✅ Android开发工具链(Android SDK版本33.0.1)
    • Android SDK路径:/Users/tristanwieser/Library/Android/sdk
    • 平台:android-33,构建工具:33.0.1
    • Java路径:/Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java版本:OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • 已接受所有Android许可证
  • ✅ Xcode(iOS和macOS开发,Xcode 14.3)
    • Xcode路径:/Applications/Xcode.app/Contents/Developer
    • 构建版本:14E222b
    • CocoaPods版本:1.12.1
  • ✅ Chrome(Web开发)
    • Chrome路径:/Applications/Google Chrome.app/Contents/MacOS/Google Chrome
  • ✅ Android Studio(版本2022.2)
    • Android Studio路径:/Applications/Android Studio.app/Contents
    • Flutter插件可安装
    • Dart插件可安装
    • Java版本:OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
  • ✅ 已连接设备(3台)
    • iPhone 14 Plus(模拟器):1E7952C8-0AC1-48E2-A90D-C76C1606EEE7,iOS版本16.4
    • macOS(桌面):darwin-x64,macOS 13.3.1 22E772610a
    • Chrome(Web):Google Chrome 113.0.5672.126
  • ✅ 网络资源:所有预期网络资源可用
  • 无其他问题

pubspec.yaml内容

# 以下行防止包被意外发布到pub.dev,私有包推荐使用
publish_to: 'none' # 如需发布到pub.dev请删除此行

# 以下定义应用的版本和构建号
# 版本号为三个点分隔的数字,如1.2.43,后面可跟可选的构建号(用+分隔)
# 在Flutter构建时,可通过--build-name和--build-number分别覆盖版本和构建号
# Android中,build-name作为versionName,build-number作为versionCode
# 查看Android版本控制详情
# iOS中,build-name作为CFBundleShortVersionString,build-number作为CFBundleVersion
# 查看iOS版本控制详情
version: 1.0.0+1

environment:
  sdk: ">=2.17.0 <3.0.0"

dependencies:
  geocoding: ^2.0.0
  geolocator: ^9.0.2
  flutter_typeahead: ^4.3.8
  google_sign_in:
  flutter_facebook_auth: ^5.0.9
  flutter:
    sdk: flutter
  flutter_localizations:
    sdk: flutter
  adobe_xd: ^2.0.1
  google_fonts: ^4.0.3
  firebase_core: ^2.13.0
  firebase_core_platform_interface: ^4.8.0
  firebase_analytics: ^10.1.0
  firebase_auth: ^4.6.1
  firebase_storage: ^11.0.10
  firebase_messaging: ^14.6.1
  cloud_firestore: ^4.7.1
  google_maps_flutter: ^2.1.1
  smooth_star_rating_null_safety: ^1.0.4+2
  image_picker: ^0.8.3+2
  dropdown_search: ^5.0.5
  filter_list: ^1.0.2
  camera:
  path_provider: ^2.0.15
  path: ^1.8.2
  table_calendar: ^3.0.0
  url_launcher: ^6.0.20

dependency_overrides:
  firebase_core_platform_interface: ^4.8.0

# 以下将Cupertino Icons字体添加到应用中
# 使用CupertinoIcons类调用iOS风格图标
cupertino_icons: ^1.0.2
mailto: ^2.0.0
flutter_rating_bar: ^4.0.1
font_awesome_flutter: ^10.4.0
google_places_flutter: ^2.0.5

dev_dependencies:
  flutter_test:
    sdk: flutter
  test:

# 关于pubspec的通用Dart部分信息,请查看相关文档
# 以下部分是Flutter专属配置
flutter:

# 以下行确保Material Icons字体包含在应用中,以便使用material Icons类的图标
uses-material-design: true

# 如需添加资源,请添加assets部分,示例如下:
assets:
  assets/images/
  assets/logos/

# 图片资源可包含一个或多个分辨率特定的"变体",查看相关文档
# 关于从包依赖中添加资源的详情,查看相关文档

# 如需添加自定义字体,请在此"flutter"部分添加fonts部分
# 列表中的每个条目应包含"family"键(字体家族名称)和"fonts"键(包含资源和其他描述符的列表)
# 示例:
fonts:
  family: Schyler
  fonts:
    asset: fonts/Schyler-Regular.ttf
    asset: fonts/Schyler-Italic.ttf
    style: italic
  family: Trajan Pro
  fonts:
    asset: fonts/TrajanPro.ttf
    asset: fonts/TrajanPro_Bold.ttf
    weight: 700
# 关于从包依赖中添加字体的详情,查看相关文档

Podfile内容

# 取消注释此行以定义项目的全局平台
# platform :ios, '13.0'

# CocoaPods分析会同步发送网络统计信息,影响Flutter构建延迟
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

project 'Runner', {
  'Debug' => :debug,
  'Profile' => :release,
  'Release' => :release,
}

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}必须存在。如果手动运行pod install,请确保先执行flutter pub get"
  end

  File.foreach(generated_xcode_build_settings_path) do |line|
    matches = line.match(/FLUTTER_ROOT\=(.*)/)
    return matches[1].strip if matches
  end
  raise "在#{generated_xcode_build_settings_path}中未找到FLUTTER_ROOT。尝试删除Generated.xcconfig,然后运行flutter pub get"
end

require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)

flutter_ios_podfile_setup

target 'Runner' do
  use_frameworks!

  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end


pod 'GooglePlaces'

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0'

    end
  end
end

解决思路

  1. 检查Firebase配置文件

    • 确认iOS项目根目录下是否存在GoogleService-Info.plist,且已正确添加到Xcode的Runner目标中(需勾选"Copy items if needed")
    • 对比配置文件中的Bundle ID与Xcode项目的Bundle ID是否完全一致
  2. 更新Firebase依赖与CocoaPods

    • 执行flutter pub upgrade firebase_core firebase_auth cloud_firestore更新所有Firebase相关依赖
    • 进入ios目录,执行pod deintegrate清除现有Pod依赖,再执行pod install --repo-update重新安装并更新Pod仓库
  3. 修复Dart SDK版本冲突

    • pubspec中environment.sdk指定的是<3.0.0,但Flutter 3.10.0已使用Dart 3.0.0,需将其修改为">=3.0.0 <4.0.0",然后执行flutter pub get
  4. 调整Podfile配置

    • 取消注释platform :ios, '13.0',确保平台版本明确
    • 将use_frameworks!改为use_frameworks! :linkage => :static,Flutter 3.10.0对静态框架支持更好,避免通道连接问题
  5. 清理构建缓存

    • 执行flutter clean清除Flutter缓存
    • 在Xcode中执行Product > Clean Build Folder清除iOS构建缓存
    • 重启iOS模拟器,再重新运行项目
  6. 检查Firebase Core初始化代码

    • 确保main.dart中Firebase.initializeApp()的调用正确,可添加错误捕获:
      void main() async {
        WidgetsFlutterBinding.ensureInitialized();
        try {
          await Firebase.initializeApp();
        } catch (e) {
          print("Firebase初始化错误: $e");
        }
        runApp(const MyApp());
      }
      

内容的提问来源于stack exchange,提问作者Troxic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 15:55:13