李开源
李开源
  • 发布:2015-01-19 17:21
  • 更新:2017-04-28 09:36
  • 阅读:25168

云端生成ios越狱包不能使用apns离线推送功能

分类:5+ SDK

尊敬的作者:

我按照推送插件使用指南,配置了个推账号,p12证书是开发环境证书,打包是云端ios越狱包。然后在个推平台发送透传消息,iphone手机没有任何反应。

我想基于此实现ios离线消息功能,还望作者指导~

静候回复,不胜感激涕零。

2015-01-19 17:21 负责人:无 分享
已邀请:
DCloud_IOS_XTY

DCloud_IOS_XTY

APNS不能使用多半是配置的问题,请按下边步骤确认具体问题:

  1. 执行plus.push.getClientInfo().token看是否可以获取token
    如果获取不到都先检查设置->通知看看是否应用被禁止接受通知,如果正常说明打包profile文件未启用apns功能
    注意:首次启动无网状态即使配置正确也获取不到token
  2. 执行plus.push.getClientInfo().clientid看是否可以获取clinetid,如果不行说明个推appkey等配置错误
  3. 使用个推web端APNS测试功能功能看是否可以收到推送,如果不行请参考http://docs.getui.com/pages/viewpage.action?pageId=590044

关于个推Push使用的步骤

  1. 去个推网站申请帐号
    这个主要是获取appid、appkey、appsecret
    可以参考这个http://ask.dcloud.net.cn/article/34
    2.在HB中配置个推相关参数
    可以参考这个文档 http://ask.dcloud.net.cn/article/92
    3.生成启动APNS功能的profile文件用这个profile进行打包,证书还使用原来打包的证书
    这个我会在下边的评论中说明
    4.APNS证书的生成和在个推中的配置,这个证书是用来和苹果APS服务器双向HTTPS
    只要在苹果开发者网站生成提交给个推即可
    参考个推的文档http://docs.getui.com/mobile/ios/apns/
    5.push API请参考http://html5plus.org/#specification#/specification/Push.html
    demo可参考HelloH5

iOS 5+runtime消息处理规则:
1.判断是否是可以JSON解析,如果是并且 title 、content、 payload、 三者则返回对应内容
2.如果不是1中的格式 title取应用名字 、content取推送消息的完整内容、payload 取推送消息的完整内容,如果可以JSON化返回对象否则和content内容一致

如果是APS通道推送的消息返回格式为
title节点为应用名字
content为推送的消息
aps节点为Apple APS消息格式中aps节点
payload节点为Apple APS消息格式中除aps节点外的所有节点如果没有为空

关于个推iOS服务器推送请参考iOS推送文档请勿参考安卓文档

APS知识请参考Apple 文档https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ApplePushService.html

李开源

李开源 (作者)

谢谢DCloud_IOS_XTY,另外ios发布appstore版本老是提示“打包失败,原因未知”,以下是文档里说的:

AppID:iOS应用标识,推荐使用反向域名风格的字符串,如“com.domainname.appname”,必须与profile文件绑定的App ID匹配。
私钥证书:iOS Certificates文件(.p12);
私钥密码:导入私钥证书的密码;
Profile文件:iOS Provisioning Profile文件(.mobileprovision),必须与苹果App ID和私钥证书区配;

这个我要注意些什么,或者说有没有详细的生成这些文件的说明。

  • DCloud_IOS_XTY

    打包失败的问题你在群里找下@46 ,步骤我会抽空在上边的评论中写下

    2015-01-20 12:58

  • 李开源 (作者)

    回复 DCloud_IOS_XTY:很感谢你,根据你的提示,问题已经解决~

    2015-01-20 17:17

DCloud_IOS_XTY

DCloud_IOS_XTY

如何启用APNS功能
登录到iOS Developer Program
1.找到对应的appid 点击Edit,注意该appid 不能为Wildcard类型


2.勾选 push 点击done

  1. 重新生成新的profile
Pall_Li

Pall_Li

@DCloud_IOS_XTY 根据以上方式,仍然打包错误。搞了很长时间了,是否能解答一下?

错误提示:
/usr/bin/codesign --force --sign 68B127EC15801331ACDF06A25A0A52992E58E524 --entitlements 安装包制作目录build/Pandora.build/Release-iphoneos/Pandora.build/DCloud_Pandora.app.xcent --timestamp=none 安装包制作目录build/Release-iphoneos/DCloud_Pandora.app
68B127EC15801331ACDF06A25A0A52992E58E524: no identity found
Command /usr/bin/codesign failed with exit code 1

  • DCloud_IOS_XTY

    打包错误的具体原因你联系下QQ 578016430

    2016-03-08 11:50

Pall_Li

Pall_Li

谢谢

zapoi

zapoi

在xcode中按照Capabilities -> Push Notification -> ON 打开了推送设置,然后进行推送测试, plus.push.addEventListener( "receive", function( msg ){}方法无法监听到推送过来的数据。在个推平台上使用了cid进行推送测试发现是可以接收到推送消息的,请问下这个是什么原因?该怎么解决。

  • zapoi

    @697

    2017-03-07 16:45

iwindy

iwindy

@DCloud_IOS_XTY iOS 进入后台,都得用 APNS 才能接收到信息吗?用透传不行吗

该问题目前已经被锁定, 无法添加新回复