M1芯片Mac下Flutter项目使用google_sign_in API开发问题咨询
M1芯片Mac设备Flutter google_sign_in依赖适配解决方案
步骤1:清理现有缓存与冗余依赖
- 在Flutter项目根目录执行命令
flutter clean,完成后删除根目录下的pubspec.lock文件 - 进入项目ios目录,删除
Podfile.lock、Pods文件夹、Runner.xcworkspace文件 - 打开系统终端执行命令
sudo arch -x86_64 gem install ffi,安装适配x86架构的ffi依赖,兼容旧版iOS Pod组件
步骤2:修改Podfile配置
- 打开ios目录下的Podfile文件,将顶部注释的
# platform :ios, '9.0'取消注释,修改为platform :ios, '12.0',匹配google_sign_in的最低系统要求 - 修改底部post_install块,添加架构排除配置,完整配置如下:
post_install do |installer| installer.pods_project.targets.each do |target| flutter_additional_ios_build_settings(target) target.build_configurations.each do |config| # 排除模拟器arm64架构,解决M1设备编译冲突 config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO' end end end
步骤3:重新安装依赖
- 回到Flutter项目根目录执行命令
flutter pub get - 再次进入ios目录,执行命令
arch -x86_64 pod install --repo-update,强制使用x86架构拉取更新Pod依赖
步骤4:Xcode配置校验
- 打开ios目录下的
Runner.xcworkspace文件,进入Runner项目的Build Settings页面 - 搜索
Excluded Architectures,确认模拟器选项下已配置arm64,未自动生成则手动补充 - 搜索
Minimum Deployments,确认iOS最低版本设置为12.0,与Podfile配置保持一致
异常备选方案
如果上述操作完成后仍存在兼容问题,可在pubspec.yaml中指定使用稳定兼容版本的google_sign_in,配置为 google_sign_in: ^5.4.4,完成后重新执行步骤1到步骤3的操作即可。
注:真机调试时无需排除arm64架构,仅模拟器调试需要该配置。
内容的提问来源于stack exchange,提问作者Chethan
相关产品推荐
相关产品推荐

