DCloud_App_Array
DCloud_App_Array
  • 发布:2016-12-23 17:50
  • 更新:2024-02-04 23:14
  • 阅读:44962

iOS打包“doesn't support the Push Notifications capability”错误解决方法

分类:HTML5+

为了解决iOS10平台兼容性问题,云端打包环境更新为(XCode8+iOS10 SDK)。
导致提交云端打包可能提示以下错误:

...  
Check dependencies  
Provisioning profile "XXXXXX" doesn't support the Push Notifications capability.  
Provisioning profile "XXXXXX" doesn't include the aps-environment entitlement.  
Code signing is required for product type 'Application' in SDK 'iOS 10.0'  
...

此错误的原因是在新版本XCode编译环境中会校验profile文件中是否配置使用Push功能。
如果应用中添加了“Push(消息推送)”模块(HBuilder的manifest.json文件“模块权限”->“模块设置”中配置),profile文件中则必需配置添加“Push Notifications”能力。

有两种解决方案:
一种是删除Push功能,即在HBuilder的manifest.json文件“模块权限”->“模块设置”中配置删除“Push(消息推送)”模块;
如果手动修改过manifest.json文件,请切换到源码视图,将permissions下的所有push节点数据都删除
另一种是更新profile文件,操作方法如下:

确保使用的App IDs打开“Push Notifications”服务

  1. 登录苹果开发者网站,输入开发者账号、密码并登录
  2. 左侧选择“Certificates, IDs & Profiles”,打开iOS证书管理界面
  3. 左侧“Identifiers”栏下选择“App IDs”,打开应用ID管理界面
  4. 在右侧ID管理列表中选择需要使用的应用标识
  5. 点击“Edit”按钮,在打开的服务列表中选中“Push Notifications”服务,点击“Done”保存

重新生成profile文件

  1. 左侧“Provisioning Profiles”栏下选择“Distribution”,打开发布profile管理界面
  2. 在右侧profile管理表中选择需要更新的profile项
  3. 点击“Edit”按钮,打开profile编辑页面
  4. 确认配置项正确,点击“Generate”按钮重新生成profile文件

验证方法
简单验证profile文件是否配置Push功能的方法是使用记事本打开profile文件,搜索是否存在“aps-environment”。
如果存在则表明配置Push功能正确,重新提交云端打包即可。

5 关注 分享
Trust web前端开发 s***@qq.com 1***@163.com 打雷

要回复文章请先登录注册

web前端开发

web前端开发

回复 DCloud_App_Array :
好的,我再试试,按照/152的教程从新走一遍申请一个P12文件和一个profile文件。
2016-12-29 15:54
DCloud_App_Array

DCloud_App_Array (作者)

回复 web前端开发 :
这个错误跟profile文件中的Push能无关,是不是证书重新申请了?
尝试新生产一个证书和profile文件。
2016-12-29 15:11
web前端开发

web前端开发

请问增加push模块后,新生成的profile文件在打包时被应用,私钥证书此时需要换新的吗?还是以前打包用的私钥证书。我用以前的私钥证书和新生成的profile证书打包会报错:IOS开发者证书信息有误,请重新填写相关信息
IOS profile文件与私钥证书文件不匹配

注:新生成的profile文件存在<key>aps-environment</key>
2016-12-29 11:31