React Native 中架构 x86_64 的 7 个重复符号

Har*_*hra 11 ios cocoapods swift react-native react-native-ios

当我尝试在 ios 模拟器上运行我的 React Native 应用程序时,我收到此错误。

错误:

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)

Run Code Online (Sandbox Code Playgroud)

我尝试清理构建文件夹,再次运行 pod install 但没有任何效果。我陷入了这个错误。我无法找到导致此错误的原因。另外,我检查了 myApp > Libraries 文件夹,没有任何内容(空文件夹)。

小智 11

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

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

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

希望它可以帮助遇到该问题的其他人。

  • 是的,它有效,但是应该有比降级 lib 更好的方法,但是? (2认同)

Sob*_*had 5

SOLVED @Jan 20 2022

React-native-unimodules是罪魁祸首。由于 expo 已自行更新,react-native-unimodules 现已弃用。

yarn remove react-native-unimodules
Run Code Online (Sandbox Code Playgroud)

或者

npm uninstall react-native-unimodules
Run Code Online (Sandbox Code Playgroud)

在 Pod 文件中

# require_relative '../node_modules/react-native-unimodules/cocoapods.rb'
# use_unimodules!
Run Code Online (Sandbox Code Playgroud)

还要清理您的 AppDelegate.m 和 AppDelegate.h

删除节点模块

    pod install
Run Code Online (Sandbox Code Playgroud)

进行构建并开始使用。世博包将不起作用。现在从 package.json 中删除当前正在使用的 expo 软件包,然后再次使用yarn install,然后在 iOS 目录中进行 pod install 并进行构建。仍然 expo 包无法工作,现在搜索您想要使用的任何 expo 包,然后按照文档进行操作。稍后谢谢我。


小智 -1

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