升级Xcode 15后无法在iOS模拟器运行React Native应用
问题描述
使用M1 MacBook,升级Xcode至15、React Native版本为0.72.4后,编译出现以下错误:
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,无法回退旧版本。已尝试在Build Phases中添加CoreAudioTypes框架、仅排除arm64架构,错误仍未解决。
解决方案
针对x86_64符号缺失问题:
- 检查
ToygerServiceAlgo依赖的JPEG库是否包含x86_64架构。Xcode 15对架构兼容性检查更严格,若该库仅提供arm64版本,需替换为支持双架构(arm64+x86_64)的版本,或重新编译该库生成通用架构二进制文件。 - 确认项目Build Settings中的
Architectures设置为Standard Architectures (arm64, x86_64),同时检查Excluded Architectures,确保Debug/Release模式下没有错误排除x86_64(M1设备的模拟器依赖x86_64转译,真机为arm64)。 - 清理项目缓存:执行
pod deintegrate && pod install,同时在Xcode中选择Product > Clean Build Folder,再重新编译。
- 检查
针对CoreAudioTypes框架警告:
- 在Xcode项目的
Build Phases > Link Binary With Libraries中添加CoreAudioTypes.framework,并设置为Optional(而非Required),避免强制链接导致的找不到问题。 - 检查Build Settings中的
Framework Search Paths,确保包含CoreAudioTypes所在的系统路径(通常为/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/)。
- 在Xcode项目的
额外排查点:
- 确认React Native 0.72.4与Xcode 15的兼容性:虽然0.72.x官方宣称支持Xcode 15,但部分第三方库可能存在适配问题,可尝试升级
ToygerServiceAlgo到最新版本,或查看其官方文档是否有Xcode 15适配说明。 - 检查项目的
Other Linker Flags是否有冲突,移除不必要的链接标记,确保正确引入JPEG相关库的链接参数。
- 确认React Native 0.72.4与Xcode 15的兼容性:虽然0.72.x官方宣称支持Xcode 15,但部分第三方库可能存在适配问题,可尝试升级
内容的提问来源于stack exchange,提问作者dngbll
相关产品推荐
相关产品推荐

