Xcode安装带Watch扩展iOS应用到iPhone报错-402653049 CPU不兼容
问题核心原因
报错返回码0xE8000087明确提示This application does not support this device’s CPU type,本质是M1芯片Mac下Xcode构建出的安装包缺少iPhone 7对应的arm64有效架构切片,叠加Watch扩展的嵌入、签名配置错误,导致实体设备校验安装包时判定CPU架构不兼容。
修复步骤
1. 统一所有Target的架构配置
分别选中iOS主App、WatchKit App、WatchKit Extension三个Target,打开Build Settings面板修改以下配置:
- 将
Architectures选项设置为Standard Architectures (arm64, armv7),禁止选择仅适配Apple Silicon/Intel模拟器的架构选项 - 检查
Excluded Architectures配置项,确保iOS真机(非模拟器)配置下没有将arm64加入排除列表——M1 Mac开发时为了跑模拟器常手动给模拟器架构排除arm64,若误配到真机侧会直接导致arm64设备安装失败 - 将
Build Active Architecture Only下的Debug配置从Yes改为No,Release配置保持No,避免调试阶段仅构建当前选中运行目标的架构,遗漏真机所需切片。
2. 修正嵌入与签名规则
当前General面板下的嵌入配置存在错误,按如下规则调整iOS主App Target的Frameworks, Libraries, and Embedded Content列表:
- 删除手动添加的
WatchKitExtension、iOS app两个条目,这两项不需要手动嵌入,Xcode会自动处理Watch配套依赖的关联 - 找到WatchKit App对应的条目,将嵌入规则从
Embed Without Signing改为Embed & Sign - CocoaPods生成的framework保持
Do Not Embed即可,同时在Podfile末尾添加如下配置,执行pod install统一所有三方依赖的架构规则:
post_install do |installer| installer.pods_project.targets.each do |target| target.build_configurations.each do |config| config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO' config.build_settings['ARCHS'] = 'arm64 armv7' config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64' end end end
3. 清理缓存重新安装
配置修改完成后清理旧构建产物避免缓存干扰:
- 按下快捷键
Shift + Command + K清理Xcode构建目录 - 打开Xcode的
Window > Devices and Simulators面板,选中已连接的iPhone 7,删除设备上残留的旧版本安装包 - 重启Xcode后重新选择真机目标构建安装即可
补充校验:如果你的Watch App设置的最低部署版本高于配对实体手表的系统版本,也会连带导致iOS主App安装失败,需确保Watch端两个Target的最低部署版本不高于测试手表的系统版本。
内容的提问来源于stack exchange,提问作者carlson
相关产品推荐
相关产品推荐

