Jenkins流水线脚本生成Provisioning Profiles遇问题,求原因分析
作为经常处理iOS持续集成问题的开发者,我整理了Jenkins流水线生成Provisioning Profiles时最常见的几类问题及对应的原因,你可以对照自己的情况排查:
无法连接到Apple Developer Portal
原因:通常是Jenkins服务器的网络配置受限,比如防火墙拦截了与Apple开发者网站的通信;或者流水线中配置的Apple开发者账号凭证有误(如用户名/密码过期、API密钥无效);也可能赶上Apple Developer Portal的维护时段。生成的Provisioning Profile签名不匹配
原因:大概率是流水线指定的Bundle ID与Apple Developer Portal中注册的不一致;或是选错了证书类型(比如用开发证书生成发布用的Profile);还有可能是目标设备的UDID未添加到对应开发者团队,导致Profile无法包含该设备。流水线执行时提示权限不足
原因:如果使用Apple ID账号,该账号可能没有生成Provisioning Profiles的权限(需要是团队管理员或拥有对应权限的角色);如果用API密钥,密钥的权限范围未勾选“Provisioning Profiles”相关选项;另外,Jenkins运行用户的文件权限不足,无法将生成的Profile写入指定目录。生成的Profile过期或无效
原因:关联的开发者证书已过期;或是Profile本身被手动撤销,或是有效期设置过短;也可能是流水线脚本未正确处理Profile更新逻辑,一直复用旧的过期文件。Xcode命令行工具执行报错
原因:Jenkins服务器上的Xcode版本过低,不支持当前Profile格式;或是xcodebuild命令的参数配置错误(比如指定了不存在的团队ID、证书名称);还有可能是未正确安装Xcode Command Line Tools组件。
内容的提问来源于stack exchange,提问作者Raj4MS

