Codemagic打包iOS报错:Runner配置文件含entitlements未声明权限如何解决
解决方案
步骤1:删除Apple Developer后台App ID的多余权限
- 登录Apple Developer后台,进入「Certificates, Identifiers & Profiles」页面
- 左侧选择「Identifiers」,找到你项目对应Bundle ID的App ID条目点击进入
- 在功能列表中找到 HealthKit 和 Low-Latency HLS 两个选项,取消勾选后点击保存,弹窗提示确认修改时直接确认即可
注意:Provisioning Profile的权限完全继承自对应App ID的配置,只有先清理App ID的多余配置,后续生成的描述文件才不会携带多余权限
步骤2:重新生成Provisioning Profile
- 左侧选择「Profiles」,找到你项目在用的描述文件,点击进入后选择右上角的「Edit」
- 直接点击右上角「Save」重新生成描述文件,下载新生成的
.mobileprovision文件到本地备用 - 如果之前有旧的同名描述文件,建议先删除本地旧文件,避免后续混用
步骤3:校验本地Xcode项目配置
- 打开Xcode项目,选中左侧根目录的
Runner项目,中间区域选择Runnertarget,切换到「Signing & Capabilities」标签页 - 检查页面上显示的已启用权限列表,确认没有HealthKit和Low-Latency HLS相关条目,如果有点击条目右上角的叉号删除
- 打开项目里的
Runner.entitlements文件,检查字典中是否有com.apple.developer.coremedia.hls.low-latency和com.apple.developer.healthkit.background-delivery对应的键,如有直接删除这两行 - 本地执行一次Archive导出操作,确认本地打包不会再触发权限报错
步骤4:更新Codemagic签名配置
- 如果你的Codemagic使用手动上传签名文件的模式:删除平台上之前上传的旧描述文件,上传步骤2新生成的描述文件后重新构建即可
- 如果你的Codemagic使用自动签名模式:进入项目构建设置的签名配置页,触发一次签名信息重新拉取,也可以先清理Codemagic的构建缓存后再执行新的构建,避免平台沿用旧的缓存签名文件
内容的提问来源于stack exchange,提问作者Heikkisorsa
相关产品推荐
相关产品推荐

