VS2022部署Maui至Apple无法移除VS:WildCard Development配置文件
问题描述
已将个人Apple Developer账户添加至VS2022的Xamarin/Apple Accounts并尝试自动配置,当时有两个团队选项:一个是Apple「用户与访问」密钥标签页设置的密钥名称+KEY ID,另一个是个人姓名+KEY ID。选择带个人姓名的选项后自动生成了VS: WildCard Development配置文件,但部署到连接Mac的iPhone时出现以下签名错误:
>Detected signing identity: 1> Code Signing Key: "Apple Development: Created via API (KEY ID)" (numbers from unknown) 1> Provisioning Profile: "VS: WildCard Development" (hex digits from unknown) 1> Bundle Id: com.companyname.mauixxx 1> App Id: XXXX.com.companyname.mauixxx .. 1>Warning: unable to build chain to self-signed root for signer "Apple Development: Created via API (KEY ID)" 1>/Users/me/Library/Caches/Xamarin/mtbs/builds/Mauixx/hex digits/bin/Debug/net7.0-ios/ios-arm64/device-builds/iphone8.4-15.7.5/Mauixx.app: errSecInternalComponent 1>C:\Program Files\dotnet\packs\Microsoft.iOS.Sdk\16.2.2035\tools\msbuild\iOS\Xamarin.Shared.targets(2150,3): error : /usr/bin/codesign exited with code 1: 1>C:\Program Files\dotnet\packs\Microsoft.iOS.Sdk\16.2.2035\tools\msbuild\iOS\Xamarin.Shared.targets(2150,3): error : Warning: unable to build chain to self-signed root for signer "Apple Development: Created via API (KEY ID)" .. Warning: unable to build chain to self-signed root for signer "Apple Development: Created via API (KEY ID)"
尝试删除VS2022中的Apple账户、项目的obj/bin文件夹以及AppData\Local\Xamarin\iOS\Provisioning文件夹后重启VS,重新添加账户后「查看详情」中出现三个未在本地钥匙串中的证书:两个相同的「Apple Distribution: My Name」(分发类型)、一个「Apple Development Created in API」(开发类型),且未触发自动配置就再次出现VS:WildCard Development配置文件。手动配置时仅能看到该WildCard配置文件;再次尝试用带个人姓名的团队自动配置时,提示「Apple Development Created via API (KEY ID)」证书已存在但本地钥匙串中找不到。
需解决两个问题:
- 如何彻底清除VS2022中的
VS:WildCard Development配置文件并重新开始? - 选择带Apple密钥名称的团队进行自动配置是否可行?
解决方案
1. 彻底清除VS2022中的WildCard配置文件及残留信息
按以下步骤操作,确保Windows和Mac端的残留都清理干净:
- VS2022端账户移除:打开VS2022,依次进入「工具」>「选项」>「Xamarin」>「Apple Accounts」,选中所有关联的Apple账户并删除。
- Windows本地残留清理:
- 删除当前项目下的
obj和bin文件夹,确保彻底删除所有编译缓存。 - 删除路径
%APPDATA%\Local\Xamarin\iOS\Provisioning Profiles下的所有文件,这是VS存储iOS配置文件的目录。 - 删除路径
%APPDATA%\Local\Xamarin\Accounts下的所有文件,清除账户相关缓存。
- 删除当前项目下的
- Mac端残留清理:
- 打开「钥匙串访问」应用,搜索并删除所有与当前Apple开发者账户相关的
Apple Development或Apple Distribution证书。 - 删除路径
~/Library/Caches/Xamarin/mtbs下的所有文件,清理Xamarin编译缓存。 - 删除路径
~/Library/MobileDevice/Provisioning Profiles中名称包含VS: WildCard Development的配置文件。
- 打开「钥匙串访问」应用,搜索并删除所有与当前Apple开发者账户相关的
- 重启验证:彻底关闭VS2022和Mac上的Xamarin相关进程,重新启动后再添加Apple账户,此时应不会自动出现旧的WildCard配置文件。
2. 选择带Apple密钥名称的团队自动配置的可行性
该方式完全可行,且是当前更推荐的签名方式,注意以下要点:
- 此团队选项对应你在Apple开发者后台创建的API密钥,使用API密钥进行签名无需在本地安装证书,所有签名验证通过Apple API完成。
- 确保API密钥的权限配置正确:在Apple开发者后台的「用户与访问」>「密钥」页面,该密钥需开启「Certificates, Identifiers & Profiles」的权限,且密钥类型需选择「Development」(用于开发部署)。
- 选择该团队后,VS会通过API自动生成适配当前项目Bundle ID的配置文件和签名身份,无需手动管理钥匙串证书。
- 部署前需确认目标iPhone已添加到Apple开发者后台的「设备」列表中,否则自动生成的配置文件不会包含该设备,导致部署失败。
内容的提问来源于stack exchange,提问作者Exquirentibus
相关产品推荐
相关产品推荐

