Android Studio Ladybug构建Flutter iOS项目失败,Xcode报Sendable协议相关警告及链接警告
我之前在Xcode 16搭配Flutter项目时也碰到过一模一样的问题,尤其是Swift 6模式下这类Sendable协议的警告很容易触发构建失败。结合你的环境(Flutter 3.24.3、Xcode 16、iOS 18模拟器),给你几个实用的解决方案:
临时禁用Swift 6的严格并发检查
Xcode 16默认开启了Swift 6的严格模式,而很多老第三方库还没适配Sendable协议。你可以通过以下操作关闭严格检查:- 用Xcode打开项目iOS目录下的
Runner.xcworkspace - 选中
Runnertarget,进入Build Settings - 搜索
Strict Sendable Checking,将其设置为No
或者也可以把Swift语言版本切换到Swift 5:搜索Swift Language Version,选择Swift 5,这样能绕过大部分Swift 6的新检查规则。
- 用Xcode打开项目iOS目录下的
更新GTMAppAuth依赖库
报错里的警告来自GTMAppAuth这个库,大概率是版本太老没适配Sendable协议。你可以在项目的ios目录下打开终端,执行:pod update GTMAppAuth更新到最新版本后,再回到Android Studio重新构建项目,很多时候新版本会修复这类兼容性问题。
用Pod脚本压制第三方库的警告(应急方案)
如果暂时没法更新GTMAppAuth,可以通过Podfile的post_install脚本给这个库单独添加编译参数压制警告:
在ios目录下的Podfile末尾添加这段代码:post_install do |installer| installer.pods_project.targets.each do |target| if target.name == 'GTMAppAuth' target.build_configurations.each do |config| config.build_settings['OTHER_SWIFT_FLAGS'] = '-Xfrontend -warn-concurrency=none' end end end end然后执行
pod install,这样就能让Xcode忽略这个库的并发相关警告。检查Flutter与Xcode的兼容性
Flutter 3.24.3发布时Xcode 16还处于预览阶段,可能存在未适配的问题。你可以尝试升级Flutter到最新稳定版:flutter upgrade或者如果暂时不想升级Flutter,也可以降级Xcode到15.x版本(比如15.4),这个版本和Flutter 3.24.3的兼容性会更好。
备注:内容来源于stack exchange,提问作者Hitesh Chaudhari

