升级到 Xcode 15 后无法在 iOS 模拟器中运行 React-Native 应用程序

问题描述 投票:0回答:1

在 M1 MacBook 上使用 React Native 版本 0.72.4 升级到 Xcode 15 后,我在这里收到此错误:

ld: warning: could not create compact unwind for _fa3d73c773a947d51: does not use RBP or RSP based frame
ld: warning: Could not find or use auto-linked framework 'CoreAudioTypes'
Undefined symbols for architecture x86_64:
  "_qwjicc_jpeg_CreateCompress", referenced from:
      _convertRGB2Jpeg in ToygerServiceAlgo(JpegTool.cpp.o)
  "_qwjicc_jpeg_destroy_compress", referenced from:
      _convertRGB2Jpeg in ToygerServiceAlgo(JpegTool.cpp.o)
  "_qwjicc_jpeg_finish_compress", referenced from:
      _convertRGB2Jpeg in ToygerServiceAlgo(JpegTool.cpp.o)
  "_qwjicc_jpeg_mem_dest", referenced from:
      _convertRGB2Jpeg in ToygerServiceAlgo(JpegTool.cpp.o)
  "_qwjicc_jpeg_set_defaults", referenced from:
      _convertRGB2Jpeg in ToygerServiceAlgo(JpegTool.cpp.o)
  "_qwjicc_jpeg_set_quality", referenced from:
      _convertRGB2Jpeg in ToygerServiceAlgo(JpegTool.cpp.o)
  "_qwjicc_jpeg_start_compress", referenced from:
      _convertRGB2Jpeg in ToygerServiceAlgo(JpegTool.cpp.o)
  "_qwjicc_jpeg_std_error", referenced from:
      _convertRGB2Jpeg in ToygerServiceAlgo(JpegTool.cpp.o)
  "_qwjicc_jpeg_write_scanlines", referenced from:
      _convertRGB2Jpeg in ToygerServiceAlgo(JpegTool.cpp.o)
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

该应用程序曾经在 Xcode 14.3 上运行,但更新到 macOS Sonoma 后,不再是一个选项,因为 Xcode 15 是最低版本。

有人熟悉这个错误吗?我该如何解决这个问题?

已尝试将 CoreAudioTypes 框架添加到构建阶段,也仅将 arm64 添加到排除的架构中,但错误仍然存在。

ios xcode react-native mobile
1个回答
0
投票
  • 您遇到的错误是由于链接器无法找到 x86_64 架构的符号造成的。这是因为您用于 JPEG 压缩的库 (qwjicc) 是为 M1 芯片使用的 arm64 架构构建的。链接器正在尝试查找 x86_64 架构的符号,这些符号不存在于您正在使用的库中。

  • 要解决此问题,您需要重新编译 x86_64 架构的库。不幸的是,qwjicc 库似乎不支持这种架构。但是,您可以使用同时支持 arm64 和 x86_64 的替代库。 libjpeg-turbo 就是这样的一个库。

  • 您可以将 libjpeg-turbo 添加为 Podfile 或其他配置文件中的依赖项

    pod install libjpeg-turbo
    
© www.soinside.com 2019 - 2024. All rights reserved.