M1 Max编译React Native Xcode项目报x86_64架构符号未找到错误
React Native M1 Pro/Max设备x86_64符号缺失编译错误排查方案
你遇到的完整编译错误如下:
ld: symbol(s) not found for architecture x86_64 clang Showing Recent Errors Only Undefined symbol: _pb_ostream_from_buffer Undefined symbol: _pb_encode_string Undefined symbol: _pb_decode_varint Undefined symbol: _pb_encode_submessage Undefined symbol: _pb_decode Undefined symbol: _GPBClearOneof Undefined symbol: _OBJC_CLASS_$_GTMLogMininumLevelFilter Undefined symbol: _OBJC_CLASS_$_GPBCodedOutputStream Undefined symbol: _pb_read Undefined symbol: _OBJC_CLASS_$_GPBInt32Array Undefined symbol: _OBJC_CLASS_$_GPBDescriptor Undefined symbol: _OBJC_METACLASS_$_GPBMessage Undefined symbol: _OBJC_CLASS_$_GPBMessage Undefined symbol: _pb_istream_from_buffer Undefined symbol: _OBJC_CLASS_$_GPBRootObject Undefined symbol: _OBJC_METACLASS_$_GPBRootObject Undefined symbol: _OBJC_CLASS_$_GDTCORTransport Undefined symbol: _OBJC_CLASS_$_GTMSessionCookieStorage Undefined symbol: _OBJC_CLASS_$_GTMSessionFetcher Undefined symbol: _OBJC_CLASS_$_GTMLogger Undefined symbol: _OBJC_CLASS_$_GTMSessionFetcherService Undefined symbol: _OBJC_CLASS_$_GULCCComponentType Undefined symbol: _OBJC_CLASS_$_GPBEnumArray Undefined symbol: _OBJC_METACLASS_$_GTMLogger Undefined symbol: _GULLogInfo Undefined symbol: _GULIsLoggableLevel Undefined symbol: _GULLogBasic Undefined symbol: _kGULNetworkHTTPStatusCodeNotFound Undefined symbol: _kGULNetworkHTTPStatusOK Undefined symbol: _kGULNetworkHTTPStatusCodeCannotAcceptTraffic Undefined symbol: _GULLogWarning Undefined symbol: _OBJC_CLASS_$_GULNetwork Undefined symbol: _OBJC_CLASS_$_GPBEnumDescriptor Undefined symbol: _OBJC_CLASS_$_GULAppDelegateSwizzler Undefined symbol: _OBJC_CLASS_$_FlipperKitReactPlugin Undefined symbol: _OBJC_CLASS_$_GULAppEnvironmentUtil Undefined symbol: _kGULNetworkHTTPStatusCodeNotModified Undefined symbol: _GULLogError Undefined symbol: _kGULNetworkHTTPStatusCodeUnavailable Undefined symbol: _OBJC_CLASS_$_FIRComponent Undefined symbol: _OBJC_CLASS_$_RCTBridge Undefined symbol: _OBJC_CLASS_$_GULMutableDictionary Undefined symbol: _OBJC_CLASS_$_FIRAuth Undefined symbol: _OBJC_CLASS_$_FIRInstallations Undefined symbol: _kFIRLoggerAnalytics Undefined symbol: _FIRFirebaseVersion Undefined symbol: _OBJC_CLASS_$_RCTBundleURLProvider Undefined symbol: _OBJC_CLASS_$_GULUserDefaults Undefined symbol: _OBJC_CLASS_$_FlipperKitNetworkPlugin Undefined symbol: _pb_encode_varint Undefined symbol: _OBJC_CLASS_$_GULCCComponent Undefined symbol: _OBJC_CLASS_$_FKUserDefaultsPlugin Undefined symbol: _OBJC_CLASS_$_SKDescriptorMapper Undefined symbol: _kGTMSessionFetcherStatusDomain Undefined symbol: _OBJC_CLASS_$_GULCCComponentContainer Undefined symbol: _pb_encode Undefined symbol: _OBJC_CLASS_$_Orientation Undefined symbol: _OBJC_CLASS_$_FlipperClient Undefined symbol: _OBJC_CLASS_$_RNCPushNotificationIOS Undefined symbol: _GULSetLoggerLevel Undefined symbol: _OBJC_CLASS_$_FlipperKitLayoutPlugin Undefined symbol: _OBJC_CLASS_$_GULSwizzler Undefined symbol: _OBJC_CLASS_$_RNBootSplash Undefined symbol: _pb_encode_tag_for_field Undefined symbol: _OBJC_CLASS_$_FIROptions Undefined symbol: _OBJC_CLASS_$_RNBranch Undefined symbol: _OBJC_CLASS_$_RCTLinkingManager Undefined symbol: _OBJC_CLASS_$_UAirship Undefined symbol: _OBJC_CLASS_$_GPBFileDescriptor Undefined symbol: _OBJC_CLASS_$_FIRApp Undefined symbol: _OBJC_CLASS_$_RCTRootView Undefined symbol: _FIRInstallationIDDidChangeNotification Undefined symbol: _kGULNetworkHTTPStatusNoContent Undefined symbol: _OBJC_CLASS_$_SKIOSNetworkAdapter
排查方向
- 检查Xcode和终端的Rosetta启动配置:右键Xcode点击「显示简介」,确认「使用Rosetta打开」的勾选状态和可正常编译的设备完全一致。同时检查你执行pod install、yarn等命令的终端是否开启了Rosetta,不同的运行环境会直接导致编译目标架构的差异。
- 统一CocoaPods版本和配置:执行
pod --version查看本地cocoapods版本,和正常设备的版本对齐,版本差异会导致架构自动适配逻辑不同。如果版本不一致,建议统一安装相同版本的cocoapods,之后删除本地公共源缓存:执行rm -rf ~/.cocoapods/repos,再重新执行pod repo update。 - 明确Podfile的架构排除规则:在Podfile的post_install块中添加统一的架构配置,避免不同设备解析差异:
post_install do |installer| installer.pods_project.build_configurations.each do |config| config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' config.build_settings['EXCLUDED_ARCHS[sdk=iphoneos*]'] = 'x86_64' end end
- 清理所有缓存重新构建:删除项目下的node_modules、ios/Pods、ios/Podfile.lock,再删除Xcode全局缓存:执行
rm -rf ~/Library/Developer/Xcode/DerivedData,之后重新执行yarn install、cd ios && pod install后再编译。 - 检查全局依赖冲突:错误日志中大量缺失符号属于protobuf、Firebase相关依赖,如果你本地通过brew安装了全局的protobuf,执行
brew unlink protobuf临时取消全局链接后再尝试编译,全局依赖和项目依赖的版本冲突会导致链接错误。 - 核对Xcode命令行工具版本:打开Xcode偏好设置 → Locations,确认Command Line Tools选择的版本和正常设备完全一致,不同版本的命令行工具默认编译参数存在差异。
内容的提问来源于stack exchange,提问作者luke
相关产品推荐
相关产品推荐

