Flutter iOS应用上传App Store遇ITMS-90078推送权限问题求助
解决Flutter iOS应用ITMS-90078推送权限问题
检查Xcode项目Capabilities配置
打开Xcode,进入项目target的「Signing & Capabilities」标签,确认「Push Notifications」开关处于开启状态,且下方自动生成了APS Environment条目(生产环境对应production)。如果没自动生成,点击「+ Capability」搜索添加「Push Notifications」,避免仅在开发者后台配置却未同步到Xcode项目。重新生成并验证分发配置文件
- 登录Apple开发者后台,找到对应App ID,确认「Push Notifications」已启用,且生产环境推送证书有效。
- 重新创建生产用Provisioning Profile,确保勾选了包含推送权限的App ID,生成后下载导入Xcode。
- 在Xcode中手动选择该配置文件(不要依赖自动签名),可以用命令
security cms -D -i <配置文件路径>.mobileprovision查看文件内容,搜索aps-environment确认存在且值为production。
清理Flutter项目缓存并重建
执行以下命令清理缓存,避免旧配置干扰:flutter clean flutter pub get cd ios && pod install回到Xcode重新构建项目,确保所有配置已同步。
规范构建上传流程
- 在Xcode中选择「Generic iOS Device」作为构建目标,执行「Product > Archive」。
- 通过Organizer导出IPA时,选择「App Store Connect」选项,确保导出的是生产环境包,且签名配置选择手动指定的分发证书和配置文件。
- 用Apple官方Transporter工具上传IPA,避免第三方工具导致权限丢失。
OneSignal配置排查
- 确保OneSignal Flutter插件为最新版本,旧版本可能存在适配问题。
- 检查Flutter初始化代码,确认正确调用了OneSignal初始化方法,且主动请求了通知权限:
OneSignal.shared.setAppId("你的OneSignal App ID"); OneSignal.shared.promptUserForPushNotificationPermission(); - 在OneSignal控制台确认已上传正确的生产环境推送证书,且App ID与项目配置一致。
- 启动应用时查看Xcode控制台日志,搜索「OneSignal」或「APNs」关键词,定位注册失败的具体错误信息。
内容的提问来源于stack exchange,提问作者User89
相关产品推荐
相关产品推荐

