iPhone:在生产证书上推送通知测试

时间:2011-06-20 14:56:52

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

我有一个简单的问题。我一直在测试我的iPhone应用程序的开发推送通知证书,并且它一直正常工作。我只想知道在将应用程序提交到AppStore之前是否可以测试生产证书?我尝试过,但是当我使用生产证书时,消息不会出现。当我使用生产证书时,Apple是否要求应​​用程序在AppStore中?

感谢。

3 个答案:

答案 0 :(得分:36)

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

更新:

请参阅the Apple documentation here

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

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

2)设置您的系统,使存档版本使用新创建的Ad Hoc配置,设置此步骤所需的步骤已在线完整记录,here is one example

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

顺便说一句,我发现testflightapp对于管理Ad Hoc版本的分发非常有用,虽然我最近才发现它,但是由于我正处于运行测试版的中间,它现在节省了我的时间。测试程序。

答案 1 :(得分:8)

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

  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。
      4. 在测试针对开发环境的推送通知时,应该记住一个严格的检查表。其中大部分都已在上面提到。但这是解决我的问题的一件事,我想分享。我希望它对某人有帮助。那就是:

        请注意设备令牌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];
        }
        

答案 2 :(得分:5)

替代

如果您要节省更多时间, debug 1 在生产环境中测试这些通知,而无需构建&amp;每次分发,请按照以下步骤操作:

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

  5. 如何创建新方案

    1. 点击左侧角落的应用名称

      enter image description here

    2. 选择&#34;新方案......&#34;并命名,

    3. 然后,再次打开此菜单进行编辑,然后选择&#34;编辑方案...&#34;,
    4. 选择&#34;发布&#34;在&#34;构建配置&#34; :

      enter image description here

    5. 选择它,所以它出现在左上角,你就完成了!

    6. 1:您无法使用分发或ad-hoc配置进行调试,请参阅this thread