【问题标题】:Enabling Apple Push Notifications for ad hoc distribution environment为临时分发环境启用 Apple 推送通知
【发布时间】:2011-11-04 17:43:40
【问题描述】:

我已经成功地为开发环境实施了 APN。但是我在为临时分发环境实施同样的问题时遇到了问题。 任何人都可以建议我是否需要为此创建不同的 App Id、证书和配置文件? 沙盒有什么变化吗? 步骤教程将非常受欢迎。

谢谢 Saleel Karkhanis

【问题讨论】:

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


    【解决方案1】:

    对于 Adhoc 分发,请按照以下说明进行操作:

    1. 在 Provisioning Portal 中,创建分发证书。
    2. 获取您打算用于测试的 iPhone 的“设备 ID”。打开 iTunes -> 连接您的设备 -> 选择您的设备 -> 在摘要窗格中,单击序列号标签,它将更改为标识符(40 个十六进制字符)-> 选择编辑,复制。
    3. 在配置门户中,转到设备 -> 添加新设备 -> 输入复制的设备 ID 并为其命名。
    4. 在配置门户中,创建分发配置文件。 (转到配置 -> 分发)。对于分发类型,请选中“AdHoc”。选择App Id,如果你有分发证书,这里会自动选择。选择新输入的设备并提交。下载此配置文件。
    5. 在 Xcode 中,窗口 -> 管理器。单击设备并选择库 -> 配置文件。如果您是管理员,那么单击刷新应该会获取新创建的配置文件。如果没有,请将 Adhoc 配置文件拖放到此列表中。
    6. 在 Xcode 中,在您的项目 Build Settings -> Code Signing Identity -> Release 部分中,选择“iPhone Distribution”。对于“任何 iOS SDK”,选择新创建的 Provisioning Profile。它将在列表中可用。
    7. 在 Xcode 中,产品 -> 存档。一旦完成,存档,它将自动打开存档窗口。选择项目并单击分发,在分发窗口中,选择“Save for Enterprise or AdHoc Deployment”-> 选择与新的 Provisioning Profile 对应的“Code Signing Identity”。继续该过程,这将创建一个“.ipa”文件。
    8. 发送此 .ipa 文件和新的配置文件以测试 adHoc 分发。

    如何在测试设备上加载 adHoc 分发:

    1. 打开 iTunes,连接您的测试设备。
    2. 将新的配置文件拖放到 iTunes。
    3. 拖放 .ipa 文件 iTunes。
    4. 同步您的设备。这将加载应用程序。

    要让推送通知在 Adhoc 分发中起作用:

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

    【讨论】:

    • 请更新 Xcode 8.x 的步骤,因为我无法在新版本中执行步骤 5 和 7。
    【解决方案2】:

    我对此也有很大的问题。我的代码完全没有错误。我只是在 Ad Hoc 中从来没有在手机上收到推送通知。

    事实证明,我的证书存在某种问题。我创造了

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

    您的开发模式可能工作得很好,因为任何团队成员都可以创建开发分发配置文件。但只有某些团队成员可以创建分发配置文件。让您的团队代理创建所有内容并重试。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

        registrationOptions = [kGGLInstanceIDRegisterAPNSOption:deviceToken,
                                   kGGLInstanceIDAPNSServerTypeSandboxOption:true]
        

        registrationOptions = [kGGLInstanceIDRegisterAPNSOption:deviceToken,
                                   kGGLInstanceIDAPNSServerTypeSandboxOption:false
        

        【讨论】:

          猜你喜欢
          • 2016-05-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多