Xcode构建React Native项目后App链接失败(HuaweiAnalytics相关)
问题原因分析:M1 Mac上HuaweiAnalytics模拟器链接报错
核心原因
HiAnalytics.framework本身未包含iOS Simulator的arm64架构二进制文件,仅提供了真机arm64版本。M1/M2芯片的iOS模拟器运行在arm64架构上,当Xcode编译模拟器版本时,会尝试链接arm64架构的库,但找到的是真机版本的arm64二进制,两者架构标识不兼容,因此触发链接错误。
为什么设置Excluded Architecture无效
- 仅在主项目Target中设置
Excluded Architecture为arm64,但未同步配置Pods项目中的HiAnalytics Target。Xcode编译Pods时仍会尝试编译arm64架构的模拟器版本,导致链接冲突。 - Xcode 14+版本中,
Build Active Architecture Only在Debug模式下默认设为YES,但如果HiAnalytics的Pod Target将该选项设为NO,会强制编译所有支持的架构,包括不兼容的真机arm64。 - HuaweiAnalytics的官方Pod可能未针对M1/M2模拟器做适配,其预编译框架仅包含真机arm64和Intel模拟器的x86_64架构,缺失M1模拟器所需的arm64版本。
额外说明
M1/M2 Mac的模拟器与真机均为arm64架构,但Xcode会通过不同的架构标识区分两者的二进制文件,真机arm64无法直接用于模拟器环境。若第三方库未提供兼容模拟器的arm64版本,就会出现此类架构不匹配问题。
内容的提问来源于stack exchange,提问作者Yash Nayi
相关产品推荐
相关产品推荐

