Windows端VS2019连M1 BigSur Mac开发Xamarin Forms iOS真机部署报errSecInternalComponent签名错误
M1 Big Sur环境下Xamarin.Forms iOS真机部署codesign报错解决方案
已排除的无效操作
- 重启Mac设备
- 通过Visual Studio自动吊销原有证书、重建通配符开发描述文件
- 查找传统钥匙串访问UI中的锁定/解锁入口(Big Sur版本已移除该右键操作选项)
修复步骤
- 命令行修复钥匙串访问权限
Big Sur无UI端钥匙串锁定操作入口,直接打开Mac终端执行以下两条命令,将占位文本替换为自身的Mac登录密码:
命令执行完成后无需重启设备,直接回Windows端Visual Studio 2019重新触发真机部署。security unlock-keychain -p <你的Mac登录密码> ~/Library/Keychains/login.keychain-db security set-key-partition-list -S apple-tool:,apple: -s -k <你的Mac登录密码> ~/Library/Keychains/login.keychain-db - 排查M1芯片Rosetta转译导致的权限失效问题
- 打开Mac端「活动监视器」,筛选
codesign、security进程,确认进程列表是否标注Intel转译标识 - 若存在转译运行的签名相关进程,进入Xcode应用的显示简介面板,取消勾选「使用Rosetta打开」选项
- 重启Mac端的Xamarin Build Host配对服务,重新建立Windows端Visual Studio与Mac的连接
- 打开Mac端「活动监视器」,筛选
- 修复系统级证书信任链
- 打开Mac端「钥匙串访问」应用,切换到左侧「系统钥匙串」下的「系统」分类
- 检查列表内是否存在Apple根证书(Apple Root CA、Apple Root CA - G3),若缺失则将原有存放在登录钥匙串下的开发类Apple证书、根证书统一拖移到系统钥匙串目录下
- 双击对应证书,将信任级别调整为「始终信任」,保存后退出钥匙串访问
- 清理全量构建缓存重新部署
- 在Windows端Visual Studio中清理iOS项目的
bin、obj目录 - 在Mac端打开文件目录,删除
~/Library/Caches/Xamarin/mtbs/builds路径下所有和当前项目同名的缓存文件夹 - 回到Visual Studio的iOS签名配置页,确认自动配置签名模式下匹配的开发者证书、描述文件所属的Apple开发团队ID完全一致,不存在多账号混用情况
- 在Windows端Visual Studio中清理iOS项目的
典型参考报错片段
Failed to codesign 'bin/iPhone/Debug/device-builds/iphone13.1-14.4/ToBudget.Mobile.App.iOS.app/libAcr.UserDialogs.dll.dylib': Warning: unable to build chain to self-signed root for signer "Apple Development: ANTONIO" bin/iPhone/Debug/device-builds/iphone13.1-14.4/ToBudget.Mobile.App.iOS.app/libAcr.UserDialogs.dll.dylib: errSecInternalComponent
内容的提问来源于stack exchange,提问作者Antonio Costa
相关产品推荐
相关产品推荐

