推送通知在 Ad-Hoc 配置文件下不起作用 - 尝试(几乎)一切

Posted

技术标签:

【中文标题】推送通知在 Ad-Hoc 配置文件下不起作用 - 尝试(几乎)一切【英文标题】:Push notification not working under Ad-Hoc profile - Tried (Almost) everything 【发布时间】:2013-02-06 06:17:50 【问题描述】:

我在使用开发配置文件时成功地从 APN 取回了令牌。当移动到 Ad Hoc 时,我从来没有从 APNs 收到令牌,因此我无法将它发送到我们的通知服务器。在阅读了 *** 上的所有帖子和官方文档(即重新创建的配置文件、证书等)后尝试了任何方法 现在,我尝试使用

代码设计 -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列表添加到配置文件中吗? 任何其他想法会是什么? 谢谢!

【问题讨论】:

【参考方案1】:

A.会员中心 0。证书“ios 分发” 1。为分发启用推送通知的 AppID 2。证书“APNs 生产 iOS” 3。 AdHoc 分发配置文件(每个 AppID 唯一) 4。下载证书“APN production iOS”并单击要添加到钥匙串访问的文件

B.xcode 6.1.1 1.使用AppId配置项目 2。 product/archive/export/Save for 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/设备(iTunes 左上角)/设置/应用程序/将应用程序更改为“将安装” 3.同步 4.启动应用并获取推送通知令牌

D.KeyChain 访问 - 将证书“APN production iOS”中的密钥导出到 .p12 --> 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 生产复合体>

【讨论】:

【参考方案2】:

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

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

【讨论】:

【参考方案3】:

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

【讨论】:

【参考方案4】:

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

【讨论】:

以上是关于推送通知在 Ad-Hoc 配置文件下不起作用 - 尝试(几乎)一切的主要内容,如果未能解决你的问题,请参考以下文章

推送通知在沙盒模式下不起作用

颤振:fcm ios 推送通知在发布模式下不起作用

IOS 推送通知在 ad hoc 模式下不起作用

IOS unregisterForRemoteNotifications 在飞行模式下不起作用

初始化我的新 AD-HOC 配置文件以测试生产中的推送通知

如果我们手动强制停止应用程序,推送通知不起作用