上传App至App Store遇Missing Push Notification Entitlement问题求助
解决App Store上传时的"Missing Push Notification Entitlement"问题
首先明确你遇到的错误提示:
Missing Push Notification Entitlement - 您的App似乎已注册Apple Push Notification service,但App签名的权限中未包含"aps-environment"权限。若您的App使用Apple Push Notification service,请确保您的App ID已在Provisioning Portal中启用Push Notification,并使用包含"aps-environment"权限的Distribution描述文件签名后重新提交。Xcode 8不会在构建时自动从描述文件中复制aps-environment权限,此为有意设计。如需使用该权限,可在项目编辑器的Capabilities面板中启用Push Notifications,或手动将权限添加至权限文件。
你提到在重新生成密钥后开始出现这个问题,而且已经尝试了创建新描述文件、切换自动签名、启用Push权限、重装Xcode、重新生成密钥这些操作都没解决,那咱们来试试这些更细致的排查和修复步骤:
1. 深度检查App ID的Push权限配置
- 登录Apple开发者后台,找到对应的App ID,一定要确认Push Notifications的Production环境是已启用状态(别只看Development)。重新生成密钥后,Production的Push配置很容易被重置,需要手动重新配置并生成对应的Production推送证书。
- 确认你生成的Production推送证书是有效的,并且和当前使用的开发者密钥匹配。
2. 手动验证描述文件的权限内容
- 打开Xcode偏好设置,进入"Accounts",找到你的开发者账号,右键对应的描述文件选择"Show in Finder"。
- 用文本编辑器打开这个描述文件,搜索
aps-environment字段,确认它的值是production(因为是上传App Store的分发版本)。 - 如果这个字段不存在,说明描述文件没正确包含Push权限:先在开发者后台删除旧的分发描述文件,重新创建时务必选择已经启用Push的App ID,并且指定分发类型为"App Store",生成后重新下载到本地。
3. 手动添加Entitlements权限配置
如果Capabilities面板启用Push后没自动生成权限,那就手动来:
- 在Xcode中右键项目,选择"New File",搜索"Entitlements"创建一个新的权限文件。
- 在文件里添加Key:
aps-environment,类型选String,值设为production。 - 到项目的Build Settings里,找到"Code Signing Entitlements"选项,把这个Entitlements文件的路径填进去(比如
YourProjectName/YourApp.entitlements)。
4. 彻底清理Xcode缓存与旧配置
缓存残留是常见的坑,试试这些操作:
- 按
Cmd+Shift+K清理Xcode的构建目录。 - 前往
~/Library/Developer/Xcode/DerivedData,删除对应项目的整个文件夹。 - 前往
~/Library/MobileDevice/Provisioning Profiles,删掉所有旧的描述文件,再从开发者后台重新下载最新的。
5. 统一Project与Target的签名配置
- 打开项目的Build Settings,同时检查Project和Target的配置:
- "Code Signing Identity"的Distribution选项要选正确的开发者ID。
- "Provisioning Profile"手动指定你刚重新生成的带Push权限的分发描述文件(别用Automatic,避免Xcode自动选错)。
6. 验证归档包的实际权限
- 完成归档后,在Organizer里右键归档包,选"Show in Finder",右键
.xcarchive文件选"Show Package Contents",进入Products/Applications,右键你的App文件选"Show Package Contents",找到embedded.mobileprovision文件,用文本编辑器打开,确认里面包含aps-environment字段。 - 如果这里还是没有,说明归档时没用到正确的描述文件,回到签名配置再仔细核对一遍。
内容的提问来源于stack exchange,提问作者Mathias
相关产品推荐
相关产品推荐

