Flutter应用可在Xcode运行但无法在Android Studio启动iOS模拟器问题求助
解决Flutter项目在Android Studio中iOS模拟器构建失败的问题
结合你描述的情况和报错日志,核心问题主要有两个:TwitterKit库的架构不兼容模拟器,以及Pods依赖的部署目标版本过低,下面是针对性的解决步骤:
1. 修复TwitterKit架构不兼容问题
你遇到的ld: 为iOS Simulator构建,但链接了为iOS构建的dylib错误,本质是TwitterKit这个库只包含了iOS设备的arm64架构,没有适配模拟器的x86_64架构(Xcode 13对模拟器架构的校验变得更严格)。
解决步骤:
- 打开项目iOS目录下的
Podfile,在文件末尾添加以下配置:post_install do |installer| installer.pods_project.targets.each do |target| if target.name == 'TwitterKit' target.build_configurations.each do |config| config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' end end end end - 打开终端,进入项目的ios目录,执行以下命令重置Pods依赖:
pod deintegrate pod install - 回到Android Studio,依次执行
flutter clean和flutter pub get,清理缓存后重新尝试构建。
2. 统一Pods的部署目标版本
日志里反复出现的IPHONEOS_DEPLOYMENT_TARGET设置为8.0警告,是因为Xcode 13已经不再支持iOS 8.0的部署目标,最低要求是iOS 9.0。我们可以一次性把所有Pods的部署目标统一更新:
修改刚才Podfile中的post_install块,补充统一设置规则:
post_install do |installer| installer.pods_project.targets.each do |target| # 处理TwitterKit架构兼容 if target.name == 'TwitterKit' target.build_configurations.each do |config| config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' end end # 统一设置所有Pods的部署目标为9.0(可根据你的项目需求调整) target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '9.0' end end end
再次执行pod deintegrate和pod install,确保所有依赖的部署目标都更新到符合Xcode 13要求的版本。
额外的检查和验证
- 确认Xcode使用新构建系统:打开ios项目的Xcode,点击
File -> Project Settings,确认Build System选择的是New Build System(Android Studio会同步Xcode的这个设置)。 - 彻底重启工具和电脑:有时候缓存残留会导致无规律的错误,重启后再尝试构建能排除这类问题。
- 确认Flutter SDK为最新稳定版:执行
flutter upgrade更新到最新版本,避免版本兼容带来的隐性问题。
按照这些步骤操作后,应该就能解决Android Studio中iOS模拟器的构建问题了。
内容的提问来源于stack exchange,提问作者Tomas Ward
相关产品推荐
相关产品推荐

