推送通知在Ad-Hoc配置文件下无效 - 尝试(几乎)所有内容

时间:2013-02-06 06:17:51

标签: ios push-notification apple-push-notifications ad-hoc-distribution

使用开发配置文件时,我成功地从APN获得了令牌。当移动到Ad Hoc时,我从未从APN返回令牌,因此我无法将其发送到我们的通知服务器。在阅读了Stackoverflow和官方文档(即重新创建的配置文件,证书等)上的所有帖子后尝试了一切 现在,我尝试使用

  

codesign -dvvvv --entitlements - MyApp.app

命令查看我如何签署应用程序并收到以下

<dict>
    <key>application-identifier</key>
    <string>XXXXXXX.com.company.MyApp</string>
    <key>aps-environment</key>
    <string>production</string>
    <key>get-task-allow</key>
    <false/>
    <key>keychain-access-groups</key>
    <array>
        <string>XXXXXXX.com.company.MyApp</string>
    </array>
</dict>

这是Ad Hoc代码签名吗?它不应该在配置文件中添加UDID列表吗? 什么会是什么? 谢谢!

4 个答案:

答案 0 :(得分:2)

A.会员中心
0。证书'iOS发行'
1。启用了推送通知的AppID以进行分发
2。证书'APNs Production iOS'
3。 AdHoc分发配置文件(每个AppID唯一)
4。下载证书'APN production iOS'并点击文件添加到Keychain Access

B.xcode 6.1.1
1.使用AppId配置项目
2。产品/存档/导出/保存为Ad Hoc Development - 签名身份应为'iOS -Distribution','Provisioning Profile'应为AdHoc Distribution Profile
3。导出ipa文件

C.itunes 12.0.1.26
1.将ipa文件添加到itunes / Applications中
2.将设备连接到iTunes itunes / device(itunes up left corner)/ Settings / Apps /将app更改为'will install'
3.synchronize
4.启动应用程序并获取推送通知令牌

D.KeyChain Access - 将证书'APN production iOS'中的密钥导出到.p12 - &gt; app_prod_apn_key.p12 使用密码123456

E.JavaPNS 2.2(或其他工具 - 使用生产苹果服务器)
- 运行以下命令: java -cp JavaPNS_2.2.jar:log4j-1.2.17.jar:bcprov-jdk15on-151.jar javapns.test.NotificationTest app_prod_apn_key.p12 123456 xxxxxxxx75556f8b56da29082da5f0f05d3cac1166fc84b7efd411b7fxxxxxxx production complex

答案 1 :(得分:1)

有同样的问题 如果您的任何人没有注意到,请更改服务器代码上的推送URL APN使用 AdHoc 的生产配置文件,对于生产,您必须删除网址中的沙箱,如下所述

if ($production) {
    $gateway = 'gateway.push.apple.com:2195';
} else { 
    $gateway = 'gateway.sandbox.push.apple.com:2195';
}

参考:http://codular.com/sending-ios-push-notifications-with-php

答案 2 :(得分:0)

对于临时,您应该将发布证书与生产APN一起使用。如果仍然无法工作,请尝试检查是否可以连接到生产APN端口和ips范围。 "Apple Technical note"

答案 3 :(得分:0)

确保您的Production Push证书与您的adhoc版本中的应用ID相匹配。如果您有一个.PEM文件,请打开它并确保它在顶部提到“Apple Production IOS推送服务”,然后是与您的adhoc版本完全相同的包标识符。