Xcode编译报错:arm64-apple-ios11.0-simulator不支持'-G'选项求助
解决编译报错:unsupported option '-G' for target 'arm64-apple-ios11.0-simulator'
问题原因
报错中的-G是clang旧版本的调试符号生成选项,Xcode 16(对应clang 17+)已废弃该参数。你的项目问题大概率来自两个方面:一是第三方Pod的Build Settings仍在使用该过时选项;二是老版本的React Native兼容脚本(如__apply_Xcode_12_5_M1_post_install_workaround)引入了无效配置。
解决方案
1. 移除过时的M1兼容脚本
打开Podfile,删除post_install块中的这一行:
__apply_Xcode_12_5_M1_post_install_workaround(installer)
该脚本是针对Xcode 12.5的M1临时补丁,Xcode 16已完全不需要,反而可能引入冲突性编译参数。
2. 全局清理-G编译选项
在post_install块中添加代码,遍历所有Pod Target,移除OTHER_CFLAGS和OTHER_LDFLAGS中的-G选项:
post_install do |installer| react_native_post_install( installer, :mac_catalyst_enabled => false ) # 新增:移除所有target的-G编译选项 installer.pods_project.targets.each do |target| target.build_configurations.each do |config| # 清理OTHER_CFLAGS if config.build_settings['OTHER_CFLAGS'] cflags = config.build_settings['OTHER_CFLAGS'].gsub(/-G\s?/, '') config.build_settings['OTHER_CFLAGS'] = cflags.strip end # 清理OTHER_LDFLAGS if config.build_settings['OTHER_LDFLAGS'] ldflags = config.build_settings['OTHER_LDFLAGS'].gsub(/-G\s?/, '') config.build_settings['OTHER_LDFLAGS'] = ldflags.strip end # 保留原有Firebase相关配置 if ['FirebaseCoreInternal', 'GoogleUtilities'].include?(target.name) config.build_settings['DEFINES_MODULE'] = 'YES' end end end end
3. 明确指定iOS最低版本
将Podfile开头的版本配置改为:
platform :ios, '16.0'
避免自动降级到iOS 11.0编译目标,减少版本兼容冲突。
4. 重新执行Pod安装流程
执行以下命令彻底清理并重装依赖:
pod deintegrate rm -rf Podfile.lock Pods pod install
验证
完成步骤后,打开Xcode执行清理(Cmd+Shift+K),再尝试编译项目。
内容的提问来源于stack exchange,提问作者Jason Byron Beedle
相关产品推荐
相关产品推荐

