【问题标题】:iPhone: Push Notification Testing on Production CertificateiPhone:生产证书上的推送通知测试
【发布时间】:2011-09-18 18:47:47
【问题描述】:

我有一个简单的问题。我一直在为我的 iPhone 应用程序测试开发推送通知证书,它运行良好。我只想知道在将我的应用程序提交到 AppStore 之前是否可以测试生产证书?我确实尝试过,但是当我使用生产证书时没有消息出现。使用生产证书时,Apple 是否要求应​​用程序在 AppStore 中?

谢谢。

【问题讨论】:

    标签: ios apple-push-notifications production-environment


    【解决方案1】:

    如果您创建 Ad-Hoc Profile,您会发现它使用生产证书,这可能是测试它的最简单方法。

    更新:

    the Apple documentation here

    这有很多步骤,但本质上是;

    1) 团队负责人需要创建一个新的 DISTRIBUTION 配置文件。这是通过在创建新配置文件时选择“Ad Hoc”而不是“App Store”来完成的。请注意,您不能为此使用通配符应用程序 ID,您需要为该应用程序提供一个特定的应用程序 ID,尽管您可能已经有了它。

    2) 设置您的系统,以便存档构建使用新创建的 Ad Hoc 配置,设置所需的步骤在网上有很好的记录,here is one example

    3) 现在,当您将 .ipa 分发到链接到您的 Ad Hoc 配置文件的设备时,您会发现推送通知系统正在使用生产服务器。

    顺便说一句,我发现 testflightapp 对于管理 Ad Hoc 构建的分发非常有用,虽然我最近才发现它,但现在它为我节省了几个小时,因为我正在运行测试版测试程序。

    【讨论】:

    • 谢谢 Roger,但请您详细说明一下 Ad-Hoc 个人资料吗?
    • 我已经用更多细节扩展了我的答案
    • 非常感谢罗杰的精彩解释!
    • +1 提到 TestFlight,这是一项很棒的服务 (testflightapp.com)
    • 谢谢。对于那些困惑的人,就像我一样:有 3 种类型的配置文件,即 Development、Distribution Ad Hoc 和 Distribution App Store。 'Ad hoc' 应该理想地用于 TestFlight。在调试模式下直接从 Xcode 运行时,我使用“开发”。 'Development' 可以 也可用于 TestFlight,尽管这可能并不理想 - 请参阅原始发帖人的问题。
    【解决方案2】:

    对于 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。

    在测试开发环境的推送通知时,应该牢记一些重要的清单。其中大部分已经在上面提到过。但这是解决我问题的一件事,我想分享。我希望它可以帮助某人。那就是:

    请注意设备令牌ID,这对于开发和生产环境是不同的。

    - (void)application:(UIApplication *)app didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
           NSString *deviceTokenStr = [[[[deviceToken description]
                                          stringByReplacingOccurrencesOfString: @"<" withString: @""]
                                         stringByReplacingOccurrencesOfString: @">" withString: @""]
                                        stringByReplacingOccurrencesOfString: @" " withString: @""];
           UIAlertView *alert= [[UIAlertView alloc]initWithTitle:deviceTokenStr message:Nil delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil];
            [alert show];
    }
    

    【讨论】:

    • 非常感谢您的帮助!
    【解决方案3】:

    另类

    如果您想节省更多时间,并且 debug1 在生产环境中测试这些通知,而不必每次都构建和分发,请按照以下步骤操作:

    1. 创建并安装您的分发配置文件,
    2. 使用 Release 配置而不是 Debug 创建一个新方案(有关说明,请参阅帖子的第二部分)并选择它,
    3. 确保在应用的目标构建设置下为发布配置选择了分发配置文件,
    4. 摇滚乐!

    如何创建新方案

    1. 在左上角点击您的应用名称:

    2. 选择“新方案...”并为其命名,

    3. 然后,再次打开此菜单并选择“编辑方案...”进行编辑,
    4. 在“构建配置”下选择“发布”:

    5. 选中它,让它出现在左上角,就完成了!

    1 :您不能使用分发版或临时配置进行调试,请参阅this thread

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-08
      • 2016-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多