Xcode 16 Beta下Swift项目BoringSSL-GRPC '-G'选项不支持报错求助
问题描述
升级至Xcode 16 Beta后,构建Swift应用时出现如下错误:
BoringSSL-GRPC Unsupported option '-G' for target 'arm64-apple-ios10.0'
已尝试以下操作但均无效果:
- 执行
pod deintegrate、pod install、pod update - 修改项目最低部署版本
- 移除
-GCC_WARN_INHIBIT_ALL_WARNINGS编译标志
尝试过的Podfile后处理代码片段(未生效):
if target.name == 'BoringSSL-GRPC' target.source_build_phase.files.each do |file| if file.settings && file.settings['COMPILER_FLAGS'] flags = file.settings['COMPILER_FLAGS'].split flags.reject! { |flag| flag == '-GCC_WARN_INHIBIT_ALL_WARNINGS' } file.settings['COMPILER_FLAGS'] = flags.join(' ') end end end post_install do |installer| installer.pods_project.targets.each do |target| if target.name == 'BoringSSL-GRPC' target.source_build_phase.files.each do |file| if file.settings && file.settings['COMPILER_FLAGS'] flags = file.settings['COMPILER_FLAGS'].split flags.reject! { |flag| flag == '-GCC_WARN_INHIBIT_ALL_WARNINGS' } file.settings['COMPILER_FLAGS'] = flags.join(' ') end end end target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0' end end end
可行解决方法
错误核心是BoringSSL-GRPC目标中存在Xcode 16 Beta不再支持的-G编译选项,需要针对性移除该标志,同时确保部署版本适配。修改Podfile的post_install钩子如下:
post_install do |installer| installer.pods_project.targets.each do |target| # 处理BoringSSL-GRPC的编译标志 if target.name == 'BoringSSL-GRPC' # 移除目标级别的COMPILER_FLAGS中的-G选项 target.build_configurations.each do |config| if config.build_settings['COMPILER_FLAGS'] flags = config.build_settings['COMPILER_FLAGS'].split flags.reject! { |flag| flag == '-G' } config.build_settings['COMPILER_FLAGS'] = flags.join(' ') end end # 移除每个源文件的COMPILER_FLAGS中的-G选项 target.source_build_phase.files.each do |file| if file.settings && file.settings['COMPILER_FLAGS'] flags = file.settings['COMPILER_FLAGS'].split flags.reject! { |flag| flag == '-G' } file.settings['COMPILER_FLAGS'] = flags.join(' ') end end end # 统一设置最低部署版本(按需调整,建议适配Xcode 16支持的版本) target.build_configurations.each do |config| config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '13.0' end end end
执行步骤:
- 将上述代码替换到
Podfile中 - 执行
pod deintegrate清理现有依赖 - 执行
pod install重新安装依赖 - 清理项目构建缓存(
Cmd+Shift+K)后重新构建
如果仍有问题,可尝试:
- 确保
grpc-swift或相关依赖更新到适配Xcode 16的版本 - 检查项目中是否有手动添加的
-G编译标志,一并移除
内容的提问来源于stack exchange,提问作者Hiranmayee Mishra
相关产品推荐
相关产品推荐

