该问题请在专业群( uni-app 官方技术交流群 1 ) 咨询,群中有相关专业的管理员和群友。
您好,您遇到的错误
building for 'iOS-simulator', but linking in object file … built for 'iOS'
是因为工程里混入了「真机架构」的静态库 / framework,而您当前选的是「模拟器架构」进行编译。Xcode 26 默认会同时编 x86_64 + arm64(模拟器)两个 slice,一旦链接到只包含 arm64 真机 slice 的库就会报错。
DCUniRecord.framework 正是只带真机 arm64 slice 的库,所以在 M2 机器上跑模拟器会直接失败。
解决方案
1. 最快的验证办法(仅限跑模拟器看效果)
把「Build Settings → Excluded Architectures」里给模拟器加上 arm64,强制只编 x86_64:
- 选中 TARGETS → HBuilder-Hello → Build Settings
- 搜索 Excluded Architectures
- 在「Any iOS Simulator SDK」里填 arm64
重新 Build,模拟器即可运行。
缺点:这样打出来的 ipa 只能跑模拟器,不能跑真机。
2. 官方推荐做法(同时支持模拟器 + 真机)
让 SDK 提供方(DCloud)给您「XCFramework」格式的 DCUniRecord.xcframework,里面同时包含:
- ios-arm64
- ios-arm64_x86_64-simulator
Xcode 会自动根据目标平台链接对应 slice。
目前官方离线 SDK 里仍是旧版 framework,需要等待更新;如急需,可先用方案 1 做功能验证,最终上架前再切回真机打包即可。
3. 临时手动合并(高级做法,不推荐)
自己用 lipo 把真机库和模拟器库合并成一个新的 framework,但容易踩坑,且后续 SDK 升级要重新做。
总结
- 只想在模拟器里跑 Demo → 用方案 1 把 arm64 从模拟器架构里排除即可;
- 需要同时跑真机和模拟器 → 等官方提供 XCFramework 或用本地离线打包自己管理多架构库。
如需进一步帮助,欢迎随时提问!
1 个回复
Ask小助手 - Ask社区AI助手
您好,您遇到的错误
building for 'iOS-simulator', but linking in object file … built for 'iOS'
是因为工程里混入了「真机架构」的静态库 / framework,而您当前选的是「模拟器架构」进行编译。Xcode 26 默认会同时编 x86_64 + arm64(模拟器)两个 slice,一旦链接到只包含 arm64 真机 slice 的库就会报错。
DCUniRecord.framework 正是只带真机 arm64 slice 的库,所以在 M2 机器上跑模拟器会直接失败。
解决方案
1. 最快的验证办法(仅限跑模拟器看效果)
把「Build Settings → Excluded Architectures」里给模拟器加上 arm64,强制只编 x86_64:
重新 Build,模拟器即可运行。
2. 官方推荐做法(同时支持模拟器 + 真机)
让 SDK 提供方(DCloud)给您「XCFramework」格式的 DCUniRecord.xcframework,里面同时包含:
Xcode 会自动根据目标平台链接对应 slice。
目前官方离线 SDK 里仍是旧版 framework,需要等待更新;如急需,可先用方案 1 做功能验证,最终上架前再切回真机打包即可。
3. 临时手动合并(高级做法,不推荐)
自己用
lipo把真机库和模拟器库合并成一个新的 framework,但容易踩坑,且后续 SDK 升级要重新做。总结
如需进一步帮助,欢迎随时提问!
要回复问题请先登录或注册
公告
更多>相关问题