【问题标题】:7 duplicate symbols for architecture x86_64 in react nativeReact Native 中架构 x86_64 的 7 个重复符号
【发布时间】:2021-10-14 23:07:21
【问题描述】:

当我尝试在 ios 模拟器上运行我的 react 本机应用程序时,我收到了这个错误。

错误:

duplicate symbol '_EXCanAskAgain' in:
    /Users/harshmishra/Library/Developer/Xcode/DerivedData/myways-gkjarpvjrufpitdstvqcnasxhmrs/Build/Products/Debug-iphonesimulator/EXPermissions/libEXPermissions.a(EXPermissions.o)
    /Users/harshmishra/Library/Developer/Xcode/DerivedData/myways-gkjarpvjrufpitdstvqcnasxhmrs/Build/Products/Debug-iphonesimulator/XCFrameworkIntermediates/UMReactNativeAdapter/UMReactNativeAdapter.framework/UMReactNativeAdapter(EXPermissionsService.o)
duplicate symbol '_EXExpiresKey' in:
    /Users/harshmishra/Library/Developer/Xcode/DerivedData/myways-gkjarpvjrufpitdstvqcnasxhmrs/Build/Products/Debug-iphonesimulator/EXPermissions/libEXPermissions.a(EXPermissions.o)
    /Users/harshmishra/Library/Developer/Xcode/DerivedData/myways-gkjarpvjrufpitdstvqcnasxhmrs/Build/Products/Debug-iphonesimulator/XCFrameworkIntermediates/UMReactNativeAdapter/UMReactNativeAdapter.framework/UMReactNativeAdapter(EXPermissionsService.o)
duplicate symbol '_EXGrantedKey' in:
    /Users/harshmishra/Library/Developer/Xcode/DerivedData/myways-gkjarpvjrufpitdstvqcnasxhmrs/Build/Products/Debug-iphonesimulator/EXPermissions/libEXPermissions.a(EXPermissions.o)
    /Users/harshmishra/Library/Developer/Xcode/DerivedData/myways-gkjarpvjrufpitdstvqcnasxhmrs/Build/Products/Debug-iphonesimulator/XCFrameworkIntermediates/UMReactNativeAdapter/UMReactNativeAdapter.framework/UMReactNativeAdapter(EXPermissionsService.o)
duplicate symbol '_EXPermissionExpiresNever' in:
    /Users/harshmishra/Library/Developer/Xcode/DerivedData/myways-gkjarpvjrufpitdstvqcnasxhmrs/Build/Products/Debug-iphonesimulator/EXPermissions/libEXPermissions.a(EXPermissions.o)
    /Users/harshmishra/Library/Developer/Xcode/DerivedData/myways-gkjarpvjrufpitdstvqcnasxhmrs/Build/Products/Debug-iphonesimulator/XCFrameworkIntermediates/UMReactNativeAdapter/UMReactNativeAdapter.framework/UMReactNativeAdapter(EXPermissionsService.o)
duplicate symbol '_EXStatusKey' in:
    /Users/harshmishra/Library/Developer/Xcode/DerivedData/myways-gkjarpvjrufpitdstvqcnasxhmrs/Build/Products/Debug-iphonesimulator/EXPermissions/libEXPermissions.a(EXPermissions.o)
    /Users/harshmishra/Library/Developer/Xcode/DerivedData/myways-gkjarpvjrufpitdstvqcnasxhmrs/Build/Products/Debug-iphonesimulator/XCFrameworkIntermediates/UMReactNativeAdapter/UMReactNativeAdapter.framework/UMReactNativeAdapter(EXPermissionsService.o)
duplicate symbol '_OBJC_CLASS_$_EXReactNativeUserNotificationCenterProxy' in:
    /Users/harshmishra/Library/Developer/Xcode/DerivedData/myways-gkjarpvjrufpitdstvqcnasxhmrs/Build/Products/Debug-iphonesimulator/EXPermissions/libEXPermissions.a(EXReactNativeUserNotificationCenterProxy.o)
    /Users/harshmishra/Library/Developer/Xcode/DerivedData/myways-gkjarpvjrufpitdstvqcnasxhmrs/Build/Products/Debug-iphonesimulator/XCFrameworkIntermediates/UMReactNativeAdapter/UMReactNativeAdapter.framework/UMReactNativeAdapter(EXReactNativeUserNotificationCenterProxy.o)
duplicate symbol '_OBJC_METACLASS_$_EXReactNativeUserNotificationCenterProxy' in:
    /Users/harshmishra/Library/Developer/Xcode/DerivedData/myways-gkjarpvjrufpitdstvqcnasxhmrs/Build/Products/Debug-iphonesimulator/EXPermissions/libEXPermissions.a(EXReactNativeUserNotificationCenterProxy.o)
    /Users/harshmishra/Library/Developer/Xcode/DerivedData/myways-gkjarpvjrufpitdstvqcnasxhmrs/Build/Products/Debug-iphonesimulator/XCFrameworkIntermediates/UMReactNativeAdapter/UMReactNativeAdapter.framework/UMReactNativeAdapter(EXReactNativeUserNotificationCenterProxy.o)
ld: 7 duplicate symbols for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

我尝试清理构建文件夹,再次运行 pod install 但没有任何效果。我被困在这个错误上。我无法找到导致此错误的原因。另外,我检查了 myApp > Libraries 文件夹,里面什么都没有(空文件夹)。

【问题讨论】:

  • 尝试更改根文件夹名称或位置
  • 试过这个。但它不起作用。
  • 你在使用多种方案吗?
  • @Xhirazi 不,我没有使用它。但是我怎样才能再次检查呢?
  • @Xhirazi 不,没有多重方案

标签: ios swift react-native cocoapods react-native-ios


【解决方案1】:

将 react-native-unimodules 库添加到我正在开发的应用程序后,我遇到了完全相同的错误。

在尝试不同的解决方案几个小时后,我们能够通过将 react-native-unimodules 库从当前的 0.14.7 版本降级到 0.13.3 来修复错误。

  • 更改了 package.json 中的 react-native-unimodules 版本
  • 重新安装包(yarn install for me)
  • cd ios,然后 pod deintegrate(只是为了确定),然后 pod install
  • 在 XCode 中转到产品选项卡并从那里清理构建文件夹
  • 启动应用并成功编译

希望对遇到此问题的其他人有所帮助。

【讨论】:

  • 是的,它起作用了,但是应该有比降级 lib 更好的方法吗?
  • 我可以确认 Robert Loh 的解决方案有效 - 将 react-native-unimodules 升级到当前版本并添加 expo-permissions 后构建错误消失了
  • 它还在为您工作吗? @DmitryPetrov
  • 是的 - 我添加了 expo-permissions 并将 react-native-unimodules 提高到 0.14.7,对我来说很好。你有什么问题?
  • stackoverflow.com/questions/69705826/… 这就是我现在拥有的
【解决方案2】:

react-native-unimodules 库 0.14.7 中的 expo-permissions 已过时,这导致在构建应用程序时,架构 x86_64 的 7 个重复符号出现 react native 问题。要解决此问题,您需要

  • 运行 npm install expo-permissions
  • 在 ios 文件夹中运行 pod install
  • 再次构建并运行 iOS 应用

【讨论】:

  • PS:你不必降级 react-native-unimodules,你只需要安装 expo-permissions 并运行 pod install 来链接它。
  • 它还在为您工作吗? @robert-loh
  • 有趣的是,按照您的指示,我得到了 12 个重复的符号,而不是 7 个。您安装了哪个版本的 expo-permissions?
  • @Olek 是的,我的还在工作,到目前为止没有问题。
  • @jperl 这是我所有与 expo 相关的依赖版本:>“expo”:“42.0.3”,>“expo-asset”:“8.3.3”,>“expo-av”: "9.2.3", > "expo-barcode-scanner": "10.2.2", > "expo-camera": "11.2.2", > "expo-font": "9.2.1", > "expo -linear-gradient”:“9.2.0”,>“expo-splash-screen”:“0.11.4”,>“expo-status-bar”:“1.0.4”,>“expo-updates”:“ 0.8.5", > "expo-video-thumbnails": "5.2.0",
【解决方案3】:

已解决 @2022 年 1 月 20 日

react-native-unimodules 是罪魁祸首。 因为 expo 已经更新了自己,并且 react-native-unimodules 现在已被弃用。

yarn remove react-native-unimodules

或

npm uninstall react-native-unimodules

在 pod 文件中

# require_relative '../node_modules/react-native-unimodules/cocoapods.rb'
# use_unimodules!

同时清理您的 AppDelegate.m 和 AppDelegate.h

删除节点模块

    pod install

进行构建,一切顺利。 世博包将不起作用。现在再次从 package.json 中删除您当前正在使用的 expo 包 yarn install 然后在 iOS 目录中 pod install 并使构建一切正常。仍然 expo 包不起作用,现在搜索您要使用的任何 expo-package,然后按照文档进行操作。稍后谢谢我。

【讨论】:

    【解决方案4】:

    尝试将expo-permissions升级到最新版本

    【讨论】:

      猜你喜欢
      • 2018-06-21
      • 2020-11-26
      • 2021-10-04
      • 2018-09-15
      • 1970-01-01
      • 2015-01-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多