Xamarin.Forms升级iOS15后Azure DevOps构建标识与配置文件不匹配问题
错误解释
你遇到的报错核心是对报错字段的理解偏差:
Info.plist : error : Project bundle identifier 'com.somename.Somename' does not match specified provisioning profile '2C13822C-583A-40FD-A418-28F2C2CAF228'
报错中第二个值2C13822C-583A-40FD-A418-28F2C2CAF228不是 provisioning profile 绑定的包ID,是 provisioning profile 本身的UUID。你此前把Info.plist的包ID改成这个UUID当然无法匹配,因为provisioning profile关联的包ID始终是你在苹果开发者后台配置的业务ID,而非自身UUID。
需检查的遗漏配置项
- 先核对苹果开发者后台配置:确认你新创建的provisioning profile绑定的包ID,和Info.plist里的
com.somename.Somename完全一致,大小写、特殊字符、前后缀都不能有差异 - 核对Azure DevOps构建管道配置:
- 确认你上传到DevOps的证书和provisioning profile是配对的,证书类型(开发/发布)和profile的类型完全匹配
- 如果你在iOS打包任务中手动指定了provisioning profile UUID,确认你填的
2C13822C-583A-40FD-A418-28F2C2CAF228就是新创建profile的正确UUID,没有误填旧profile的UUID - 若你开启了「自动匹配provisioning profile」选项,建议暂时关闭改用手动指定,避免构建系统匹配到残留的旧profile
- 核对Xamarin.iOS项目文件配置:
- 打开iOS项目的
.csproj文件,确认对应构建配置(比如Release|iPhone)下的<BundleIdentifier>节点值和Info.plist一致,没有被构建配置的属性覆盖 - 确认
<CodesignProvision>节点的值要么留空,要么填写新profile的正确名称/UUID,没有残留旧profile的配置
- 打开iOS项目的
- 核对构建代理缓存:如果使用自托管构建代理,清理代理上
~/Library/MobileDevice/Provisioning Profiles目录下的所有旧profile文件,避免构建时读取到冲突的旧配置;微软托管代理每次构建会自动重置环境,无需做这一步
内容的提问来源于stack exchange,提问作者David Shochet
相关产品推荐
相关产品推荐

