ios - Vision-camera-code-scanner 体系结构 x86_64 的 undefined symbol react native

标签 ios react-native cocoapods arm64 google-mlkit

我在为我的 React Native 项目使用 vision-camera-code-scanner 包时遇到构建错误。

速记错误是:

Undefined symbols for architecture x86_64

完整的错误如下:

ld: warning: ignoring file /XXXXXXXXXXXXXXXXXXX/Build/Products/Debug-iphonesimulator/vision-camera-code-scanner/libvision-camera-code-scanner.a, building for iOS Simulator-x86_64 but attempting to link with file built for iOS Simulator-arm64
Undefined symbols for architecture x86_64:
Undefined symbols for architecture x86_64:
  "_GPBClearOneof", referenced from:
      _MLKITx_EPTFlagValue_ClearValueOneOfCase in MLKitCommon(FlagValues.pbobjc.o)
      _MLKITx_PHENORegistrationInfo_ClearPackageVersionOneOfCase in MLKitCommon(RegistrationInfo.pbobjc.o)
      _MLKITx_PHENORegistrationInfo_ClearApplicationInfoOneOfCase in MLKitCommon(RegistrationInfo.pbobjc.o)
      _MLKITx_CLCCCounter_ClearCounterIdOneOfCase in MLKitCommon(Counters.pbobjc.o)
  "_GULLogBasic", referenced from:
      _MLKLog in MLKitCommon(MLKLogger.o)
  "_OBJC_CLASS_$_GDTCORTransport", referenced from:
      objc-class-ref in MLKitCommon(MLKFirelogTransport.o)
  "_OBJC_CLASS_$_GPBCodedOutputStream", referenced from:
      objc-class-ref in MLKitCommon(CCTLogOutputStream.o)
  "_OBJC_CLASS_$_GPBDescriptor", referenced from:
      objc-class-ref in MLKitCommon(Experiments.pbobjc.o)
      objc-class-ref in MLKitCommon(Metalog.pbobjc.o)
      objc-class-ref in MLKitCommon(FlatFile.pbobjc.o)
      objc-class-ref in MLKitCommon(Clientanalytics.pbobjc.o)
      objc-class-ref in MLKitCommon(FirebaseMlSdk.pbobjc.o)
      objc-class-ref in MLKitCommon(UploaderState.pbobjc.o)
      objc-class-ref in MLKitCommon(DeviceExperimentIds.pbobjc.o)
      ...
  "_OBJC_CLASS_$_GPBEnumArray", referenced from:
      objc-class-ref in MLKitBarcodeScanning
      objc-class-ref in MLKitVision(GMVLogger.o)
  "_OBJC_CLASS_$_GPBEnumDescriptor", referenced from:
      objc-class-ref in MLKitCommon(Experiments.pbobjc.o)
      objc-class-ref in MLKitCommon(FlatFile.pbobjc.o)
      objc-class-ref in MLKitCommon(Clientanalytics.pbobjc.o)
      objc-class-ref in MLKitCommon(FirebaseMlSdk.pbobjc.o)
      objc-class-ref in MLKitCommon(Barhopper.pbobjc.o)
      objc-class-ref in MLKitCommon(IosAccessibilityState.pbobjc.o)
      objc-class-ref in MLKitCommon(PhenotypeLog.pbobjc.o)
      ...
  "_OBJC_CLASS_$_GPBFileDescriptor", referenced from:
      objc-class-ref in MLKitCommon(Experiments.pbobjc.o)
      objc-class-ref in MLKitCommon(Metalog.pbobjc.o)
      objc-class-ref in MLKitCommon(FlatFile.pbobjc.o)
      objc-class-ref in MLKitCommon(Clientanalytics.pbobjc.o)
      objc-class-ref in MLKitCommon(FirebaseMlSdk.pbobjc.o)
      objc-class-ref in MLKitCommon(UploaderState.pbobjc.o)
      objc-class-ref in MLKitCommon(DeviceExperimentIds.pbobjc.o)
      ...
  "_OBJC_CLASS_$_GPBInt32Array", referenced from:
      objc-class-ref in MLKitCommon(CCTClearcutLogEvent.o)
  "_OBJC_CLASS_$_GPBMessage", referenced from:
      _OBJC_CLASS_$_MLKITx_EXHParam in MLKitCommon(Experiments.pbobjc.o)
      _OBJC_CLASS_$_MLKITx_EXHParam_ExtensionValue in MLKitCommon(Experiments.pbobjc.o)
      _OBJC_CLASS_$_MLKITx_EXHDeviceAccount in MLKitCommon(Experiments.pbobjc.o)
      _OBJC_CLASS_$_MLKITx_EXHScope in MLKitCommon(Experiments.pbobjc.o)
      _OBJC_CLASS_$_MLKITx_EXHParamPartition in MLKitCommon(Experiments.pbobjc.o)
      _OBJC_CLASS_$_MLKITx_EXHCrossAppDescriptor in MLKitCommon(Experiments.pbobjc.o)
      _OBJC_CLASS_$_MLKITx_EXHConfigurationTier in MLKitCommon(Experiments.pbobjc.o)
      ...
  "_OBJC_CLASS_$_GPBRootObject", referenced from:
      _OBJC_CLASS_$_MLKITx_EXHExperimentsRoot in MLKitCommon(Experiments.pbobjc.o)
      _OBJC_CLASS_$_MLKITx_CADPMetalogRoot in MLKitCommon(Metalog.pbobjc.o)
      _OBJC_CLASS_$_MLKITx_EPIFlatFileRoot in MLKitCommon(FlatFile.pbobjc.o)
      _OBJC_CLASS_$_MLKITx_CADPClientanalyticsRoot in MLKitCommon(Clientanalytics.pbobjc.o)
      _OBJC_CLASS_$_MLKITx_FBMLFirebaseMlSdkRoot in MLKitCommon(FirebaseMlSdk.pbobjc.o)
      _OBJC_CLASS_$_MLKITx_CCTUploaderStateRoot in MLKitCommon(UploaderState.pbobjc.o)
      _OBJC_CLASS_$_MLKITx_EXHDeviceExperimentIdsRoot in MLKitCommon(DeviceExperimentIds.pbobjc.o)
      ...
  "_OBJC_CLASS_$_GTMLogMininumLevelFilter", referenced from:
      objc-class-ref in MLKitCommon(GIPLoggingReroutingGTMLogger.o)
  "_OBJC_CLASS_$_GTMLogger", referenced from:
      objc-class-ref in MLKitCommon(PHTInternalHeterodyneSyncer.o)
      objc-class-ref in MLKitCommon(PHTHeterodyneSyncer.o)
      objc-class-ref in MLKitCommon(GIPPseudonymousIDStore.o)
      objc-class-ref in MLKitCommon(CCTLogOutputStream.o)
      objc-class-ref in MLKitCommon(CCTClearcutUploader.o)
      objc-class-ref in MLKitCommon(CCTClearcutMetaLogger.o)
      objc-class-ref in MLKitCommon(CCTClearcutFileUtility.o)
      ...
  "_OBJC_CLASS_$_GTMSessionCookieStorage", referenced from:
      objc-class-ref in MLKitCommon(CCTClearcutUploader.o)
  "_OBJC_CLASS_$_GTMSessionFetcher", referenced from:
      objc-class-ref in MLKitCommon(CCTClearcutUploader.o)
  "_OBJC_CLASS_$_GTMSessionFetcherService", referenced from:
      objc-class-ref in MLKitCommon(PHTFlatFilePhenotype.o)
      objc-class-ref in MLKitCommon(MLKModelDownloader.o)
      objc-class-ref in MLKitVision(GMVCloudVisionClient.o)
  "_OBJC_CLASS_$_GULCCComponent", referenced from:
      objc-class-ref in MLKitCommon(MLKCustomModelManager.o)
  "_OBJC_CLASS_$_GULCCComponentContainer", referenced from:
      objc-class-ref in MLKitCommon(MLKContext.o)
      objc-class-ref in MLKitCommon(MLKCustomModelManager.o)
  "_OBJC_CLASS_$_GULCCComponentType", referenced from:
      objc-class-ref in MLKitCommon(MLKModelManager.o)
      objc-class-ref in MLKitCommon(MLKContext.o)
      objc-class-ref in MLKitCommon(MLKCustomModelManager.o)
  "_OBJC_CLASS_$_GULUserDefaults", referenced from:
      objc-class-ref in MLKitCommon(MLKModelPreferencesManager.o)
      objc-class-ref in MLKitCommon(MLKAnalyticsLogger.o)
      objc-class-ref in MLKitCommon(MLKModelDownloader.o)
  "_OBJC_CLASS_$_RCTBridge", referenced from:
      objc-class-ref in AppDelegate.o
  "_OBJC_CLASS_$_RCTBundleURLProvider", referenced from:
      objc-class-ref in AppDelegate.o
  "_OBJC_METACLASS_$_GPBMessage", referenced from:
      _OBJC_METACLASS_$_MLKITx_EXHParam in MLKitCommon(Experiments.pbobjc.o)
      _OBJC_METACLASS_$_MLKITx_EXHParam_ExtensionValue in MLKitCommon(Experiments.pbobjc.o)
      _OBJC_METACLASS_$_MLKITx_EXHDeviceAccount in MLKitCommon(Experiments.pbobjc.o)
      _OBJC_METACLASS_$_MLKITx_EXHScope in MLKitCommon(Experiments.pbobjc.o)
      _OBJC_METACLASS_$_MLKITx_EXHParamPartition in MLKitCommon(Experiments.pbobjc.o)
      _OBJC_METACLASS_$_MLKITx_EXHCrossAppDescriptor in MLKitCommon(Experiments.pbobjc.o)
      _OBJC_METACLASS_$_MLKITx_EXHConfigurationTier in MLKitCommon(Experiments.pbobjc.o)
      ...
  "_OBJC_METACLASS_$_GPBRootObject", referenced from:
      _OBJC_METACLASS_$_MLKITx_EXHExperimentsRoot in MLKitCommon(Experiments.pbobjc.o)
      _OBJC_METACLASS_$_MLKITx_CADPMetalogRoot in MLKitCommon(Metalog.pbobjc.o)
      _OBJC_METACLASS_$_MLKITx_EPIFlatFileRoot in MLKitCommon(FlatFile.pbobjc.o)
      _OBJC_METACLASS_$_MLKITx_CADPClientanalyticsRoot in MLKitCommon(Clientanalytics.pbobjc.o)
      _OBJC_METACLASS_$_MLKITx_FBMLFirebaseMlSdkRoot in MLKitCommon(FirebaseMlSdk.pbobjc.o)
      _OBJC_METACLASS_$_MLKITx_CCTUploaderStateRoot in MLKitCommon(UploaderState.pbobjc.o)
      _OBJC_METACLASS_$_MLKITx_EXHDeviceExperimentIdsRoot in MLKitCommon(DeviceExperimentIds.pbobjc.o)
      ...
  "_OBJC_METACLASS_$_GTMLogger", referenced from:
      _OBJC_METACLASS_$_MLKITx_GIPLoggingReroutingGTMLogger in MLKitCommon(GIPLoggingReroutingGTMLogger.o)
  "_RCTAppSetupDefaultRootView", referenced from:
      -[AppDelegate application:didFinishLaunchingWithOptions:] in AppDelegate.o
  "_RCTAppSetupPrepareApp", referenced from:
      -[AppDelegate application:didFinishLaunchingWithOptions:] in AppDelegate.o
  "_kGTMSessionFetcherStatusDomain", referenced from:
      ___91-[MLKITx_PHTInternalHeterodyneSyncer syncHoldingLockWithSyncedScopes:fetchReason:callback:]_block_invoke in MLKitCommon(PHTInternalHeterodyneSyncer.o)
      ___150-[MLKITx_PHTHeterodyneSyncer batchSyncWithAccounts:syncedScopes:fetchReason:throttlingCache:heterodyneSyncInfo:accountToAuthToken:lastError:callback:]_block_invoke in MLKitCommon(PHTHeterodyneSyncer.o)
      ___69-[MLKModelDownloader beginModelDownloadWithURL:modelInfo:conditions:]_block_invoke.285 in MLKitCommon(MLKModelDownloader.o)
      ___63-[MLKITx_GMVCloudVisionClient initWithCloudUri:apiKey:options:]_block_invoke in MLKitVision(GMVCloudVisionClient.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我尝试通过运行以下命令来解决此问题:pod deintegrate && pod cache clean --all,然后在 ios 目录中运行 pod install,如下类似 question .

遗憾的是,这并没有解决问题,我还尝试了以下thread中建议的步骤:即排除目标arm64。但这也没有修复错误。

我还在这个 github thread 上阅读了以下内容:

It's related to the fact that Google MLKit Team does not ship ARM simulator binaries and we can't compile ourselves because the source code is not public

所以现在我有点迷失了该怎么办。
非常感谢任何帮助或建议。

正在使用 mac book pro M1 14 英寸
运行最新版本的 React Native

如果需要其他信息,请告诉我,以便我将其添加到问题中。

最佳答案

您必须按照以下步骤从 pod 文件中排除 arm64:

  1. 将其添加到您的 pod 文件中:
post_install do |installer|
  react_native_post_install(installer)
  installer.pods_project.build_configurations.each do |config|
    config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
  end
end
  • 确保在您的 pod 文件中使用此 Flipper 版本:
  • use_flipper!({'Flipper' => '0.79.0'})
    
  • 然后,清理您的 Pod 并重新安装它们:
  • rm -rf ~/Library/Caches/CocoaPods && rm -rf ./ios/Pods && rm -rf ~/Library/Developer/Xcode/DerivedData/* && pod deintegrate && pod setup && npx pod-install
    
  • 可选,iOS 模拟器支持:
  • 由于排除 arm64 将阻止您的应用在 native 模拟器上运行,因此您需要安装 Rosetta 支持并启用 Rosetta 模拟器:

    $ software update --install-rosetta
    

    如果没有这个,应用程序将启动,但一旦您尝试 MLKit 调用就会崩溃。

    关于ios - Vision-camera-code-scanner 体系结构 x86_64 的 undefined symbol react native ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74382713/

    相关文章:

    缩小到主页过渡动画期间的 iOS 应用程序图标背景颜色

    react-native - React Native Base - 侧边栏在屏幕下方打开

    reactjs - CORS header ‘Access-Control-Allow-Origin’ 缺少 REACT

    ios - 在我的 CocoaPod 中使用未声明的标识符

    ios - 是否可以直接从应用程序配置 Apple Pay?

    php - 将JSON从iOS发布到PHP

    iphone - 如何使用 UIImagePickerController 只录制音频?

    javascript - 是的,针对 punycode 和西里尔字母的域名验证

    ios - 在 CocoaPod 项目中找不到 ModuleName-Swift.h 文件

    ios - 每当将CocoaPod添加到项目中时,是否需要运行“pod设置”吗?