Xamarin.iOS构建模拟器版本报错:AssetCatalogSimulatorAgent生成失败
错误产生原因
该错误发生在Xamarin.iOS项目的_CoreCompileImageAssets资产编译阶段,核心问题是iOS资产编译工具actool无法通过CoreSimulator框架启动AssetCatalogSimulatorAgent辅助进程,和项目代码、图标资源本身无直接关联:
- 直接触发点:构建过程中actool会默认调用内置的iPad模拟器实例处理资源编译,但日志明确提示目标模拟器实例处于不可用状态,无法拉起子进程
- 常见根因:
- 升级Xcode后未完成首次启动初始化,CoreSimulator服务未正常注册
- iOS模拟器运行时文件损坏、存在无效的残留模拟器实例
- 项目obj目录下的旧构建缓存冲突
- 系统权限拦截了CoreSimulator相关进程的启动
- 偶发的CoreSimulator服务运行异常
可行修复方案
按照操作成本从低到高依次尝试即可:
- 基础服务重置
- 完全退出Visual Studio for Mac、Xcode、iOS模拟器所有关联进程
- 单独打开Xcode,完成首次启动的组件安装、许可协议确认流程,等主界面完全加载后再关闭Xcode
- 打开终端执行命令重启CoreSimulator服务:
killall -9 com.apple.CoreSimulator.CoreSimulatorService - 删除项目根目录下的
bin、obj文件夹,重新打开Visual Studio加载项目构建
- 模拟器环境修复
- 打开Xcode,进入
Xcode > Settings > Platforms页面,检查已安装的iOS Simulator运行时是否存在损坏提示,如有损坏直接删除后重新下载对应版本 - 打开iOS模拟器,新建一个任意版本的可用模拟器实例,启动并确认模拟器能正常进入系统桌面后关闭
- 终端执行命令清理所有无效的残留模拟器实例:
xcrun simctl delete unavailable
- 打开Xcode,进入
- 绕过模拟器编译依赖(上述方案无效时使用)
- 右键iOS项目进入属性设置,找到「iOS构建」页签
- 切换到
Debug|iPhoneSimulator配置,在额外构建参数栏添加如下配置,强制actool不依赖模拟器实例完成资产编译:/p:ActoolUseSimulator=false - 保存配置后清理缓存重新构建
- 系统权限修复
打开macOS系统设置>隐私与安全性>开发者工具列表,确认Visual Studio、Xcode均在允许列表中;如果之前拒绝过程序的权限申请,先移除列表内的对应条目,再重新启动程序按照提示授予开发者工具权限。
内容的提问来源于stack exchange,提问作者ndlu
相关产品推荐
相关产品推荐

