为临时分发环境启用Apple推送通知

时间:2011-08-26 17:51:56

标签: push-notification apple-push-notifications distribution

我已成功实施APN for development Environment。但是我在为ad-hoc分发环境实现相同的问题时遇到了问题。 任何人都可以建议我,我需要为此创建不同的应用程序ID,证书和配置文件吗? Sandbox有什么变化吗? 步骤教程将非常受欢迎。

由于 Saleel Karkhanis

4 个答案:

答案 0 :(得分:26)

对于临时分发,请按照以下说明操作:

  1. 在Provisioning Portal中,创建分发证书。
  2. 获取您打算用于测试的iPhone的“设备ID”。打开iTunes - >连接您的设备 - >选择您的设备 - >在摘要窗格中,单击序列号标签,它将更改为标识符(40个十六进制字符) - >选择编辑,复制。
  3. 在配置门户中,转到设备 - >添加新设备 - >输入复制的设备ID并为其命名。
  4. 在“配置”门户中,创建分配配置文件。 (转到Provisioning - > Distribution)。对于Distibution类型,请选中“AdHoc”。选择应用程序ID,如果您有分发证书,将在此处自动选择。选择新输入的设备并提交。下载此配置文件。
  5. 在Xcode,Window - >组织者。点击设备,然后选择库 - >供应配置文件。如果您是管理员,则单击“刷新”应该获取新创建的配置文件。如果没有,请将临时供应配置文件拖放到此列表中。
  6. 在Xcode中,在项目构建设置中 - >代码签名身份 - >发布部分,选择“iPhone发行版”。对于“任何iOS SDK”,选择新创建的配置文件。它将在列表中提供。
  7. 在Xcode中,产品 - >存档。完成归档后,它将自动打开归档窗口。选择项目并单击Distribute,在Distribute窗口中,选择“Save for Enterprise或AdHoc Deployment” - >选择与新配置配置文件对应的“代码签名标识”。继续该过程,这将创建一个“.ipa”文件。
  8. 发送此.ipa文件和用于测试adHoc分发的新配置文件。
  9. 如何在测试设备上加载adHoc发行版:

    1. 打开iTunes,连接测试设备。
    2. 将新配置文件拖放到iTunes。
    3. 拖放.ipa文件iTunes。
    4. 同步您的设备。这会加载应用程序。
    5. 推送通知可用于临时分发:

      1. 使用生产证书。
      2. 使用生产APN主机: gateway.push.apple.com
      3. 使用生产APN反馈主机: feedback.push.apple.com

答案 1 :(得分:1)

我也遇到了重大问题。我的代码中完全没有错误。我从来没有在Ad Hoc中通过电话获得推送通知。

事实证明我的证书存在某些问题。我创建了

我确实不确定问题到底是什么,但我通过以团队代理身份登录我的开发者帐户并在该登录下重新创建所有内容来解决问题。我最初是以团队管理员的身份创建证书。

您的开发模式可能正常,因为任何团队成员都可以创建开发分发配置文件。但只有某些团队成员才能创建分发配置文件。让您的团队代理创建所有内容并再次尝试。

答案 2 :(得分:1)

每个环境(开发和生产)的推送服务都有一个单独的持久连接。操作系统与沙箱环境建立持久连接以进行开发构建; ad hoc和分发版本连接到生产环境。

如果您使用的是GCM。转到AppDelegate.swift。查找方法:didRegisterForRemoteNotificationsWithDeviceToken并替换

registrationOptions = [kGGLInstanceIDRegisterAPNSOption:deviceToken,
                           kGGLInstanceIDAPNSServerTypeSandboxOption:true]

registrationOptions = [kGGLInstanceIDRegisterAPNSOption:deviceToken,
                           kGGLInstanceIDAPNSServerTypeSandboxOption:false

答案 3 :(得分:0)

除了Sushma Satish的回答, 当您将证书从developpement更改为distributon时,为您的手机生成的设备令牌是不同的。 因此,请确保您正在更改服务器上的设备令牌。