使用开发配置文件时,我成功地从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列表吗? 什么会是什么? 谢谢!
答案 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版本完全相同的包标识符。