Flutter iOS构建报错:UIApplication不遵循Launcher协议(url_launcher_ios)
问题原因
- url_launcher_ios版本不兼容iOS 18:你使用的
url_launcher_ios-6.2.4是旧版本,未适配iOS 18对UIApplication.open()方法的签名变更——iOS 18为该方法的completionHandler参数新增了@MainActor和@Sendable修饰符,导致插件定义的Launcher协议与系统方法签名不匹配,触发类型不兼容错误。 - Flutter.h找不到的关联问题:该问题通常是项目iOS配置与当前Flutter SDK版本不匹配,叠加旧插件版本的适配缺陷共同导致的,本质也是依赖版本兼容性问题。
解决方法
1. 升级url_launcher到兼容iOS 18的版本
修改pubspec.yaml中的url_launcher依赖版本为6.3.0及以上(该版本开始适配iOS 18的方法签名变更):
dependencies: flutter: sdk: flutter url_launcher: ^6.3.0 # 或直接指定最新稳定版
执行命令更新依赖:
flutter pub get
2. 彻底清理并重新同步iOS依赖
执行以下命令确保依赖完全更新:
flutter clean flutter pub get cd ios pod deintegrate pod cache clean --all pod install
3. 确认Flutter SDK版本适配iOS 18
确保你的Flutter SDK为3.19及以上稳定版(该版本开始官方适配iOS 18),如果版本过低,执行升级:
flutter upgrade
4. 统一iOS部署目标配置
- 确认
ios/Podfile中的部署目标为12.0或更高:platform :ios, '12.0' - 打开
ios/Runner.xcworkspace,选择RunnerTarget,在General > Deployment Info中,确保iOS部署目标与Podfile配置一致。
内容的提问来源于stack exchange,提问作者A_K
相关产品推荐
相关产品推荐

