2

使用开发配置文件时,我成功地从 APN 取回了令牌。当移动到 Ad Hoc 时,我从来没有从 APNs 收到令牌,因此我无法将它发送到我们的通知服务器。在阅读了 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

4 回答 4

2

A. 会员中心
0. 证书“iOS Distribution”
1. AppID 启用推送通知以进行分发
2. 证书“APNs Production iOS”
3. AdHoc Distribution Provisioning Profile(每个 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 左上角)/Settings/Apps/ 将应用更改为“将安装”
3.同步
4.启动应用程序和获取推送通知令牌

D.KeyChain Access - 使用密码 123456 将证书“APN production iOS”中的密钥导出到 .p12 --> app_prod_apn_key.p12

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 生产综合体

于 2014-12-21T20:40:14.870 回答
1

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

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

于 2017-02-01T10:49:07.340 回答
0

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

于 2013-02-06T13:39:32.270 回答
0

对于 ad hoc,您应该将发布证书与生产 APN 一起使用。如果它仍然不起作用,请尝试检查您是否可以连接到生产 APN 端口和 ips 范围。“苹果技术说明”

于 2013-02-06T06:44:50.117 回答