You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Appollo发布iOS应用遇ITMS-90078错误:缺少推送通知权限

解决ITMS-90078: Missing Push Notification Entitlement错误

这个错误的核心是:苹果检测到你的App调用了Apple Push Notification服务,但最终签名的IPA里没有包含aps-environment权限。以下是具体解决步骤:

1. 确认苹果开发者后台的App ID和配置文件权限

  • 登录苹果开发者后台,找到对应App的App ID,确保Push Notifications选项已启用(开发和生产环境都要开启)
  • 重新生成用于App Store分发的Provisioning Profile,确保该配置文件包含推送权限,然后同步到Appollo的配置中

2. 配置Flutter iOS项目的推送权限

方式一:通过Xcode启用Capabilities

  • 打开项目的ios/Runner.xcworkspace,选中Runner target
  • 切换到Signing & Capabilities标签页,点击+ Capability,搜索并添加Push Notifications
  • 此操作会自动生成Runner.entitlements文件,并自动添加aps-environment字段到文件中

方式二:手动配置Entitlements文件

  • 如果项目中没有Runner.entitlements,在ios/Runner目录下创建该文件
  • 写入以下内容:
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>aps-environment</key>
        <string>production</string>
    </dict>
    </plist>
    
  • 在Xcode的Runner target的Build Settings中,找到Code Signing Entitlements,设置路径为Runner/Runner.entitlements

3. 确保Appollo构建使用正确的签名配置

  • 检查Appollo上的项目构建配置,确认选择的是包含推送权限的分发Provisioning Profile,而非自动生成的临时配置
  • 若使用自动签名,确保Appollo配置的Team ID对应的开发者账号已正确开启推送权限

4. 验证配置有效性

  • 本地先进行测试构建:用Xcode完成Archive操作,导出App Store分发的IPA,然后通过命令行验证权限:
    # 先解压IPA
    unzip your_app.ipa
    # 检查权限
    codesign -d --entitlements - Payload/Runner.app
    
  • 输出结果中如果包含aps-environment = production,说明配置正确

补充说明

Appollo的构建日志显示正常是因为构建过程仅完成编译打包,不会校验苹果要求的权限配置,苹果的权限校验是在IPA上传到App Store Connect后进行的,所以会出现构建成功但上传后报错的情况。

内容的提问来源于stack exchange,提问作者Laura Bastin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 04:15:42