iPhone:推送生产证书通知testing

我有一个快速的问题。 我一直在testing我的iPhone应用程序的开发推送通知证书,它的工作正常。 我只想知道在将应用程序提交给AppStore之前是否可以testing生产证书? 我做了尝试,但是当我使用生产证书时,消息不会出现。 当我使用生产证书时,苹果是否要求应​​用程序在AppStore中?

谢谢。

如果您创build了一个Ad-Hocconfiguration文件,您会发现它使用了生产证书,这可能是最简单的testing方法。

更新:

请参阅此处的Apple文档

对此有几个步骤,但在本质上;

1)团队负责人需要创build一个新的分发configuration文件。 创build新configuration文件时,通过select“Ad Hoc”而不是“App Store”来完成。 请注意,您无法使用通配符应用程序ID,因此您需要为应用程序指定一个特定的应用程序ID,尽pipe您可能已经拥有该应用程序ID。

2)设置您的系统,以便构build归档文件,使用新创build的Ad Hocconfiguration,设置这些文件所需的步骤在网上有详细logging,以下是一个示例 。

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

顺便说一下,我发现testflightapp对于pipe理Ad Hoc构build的分布是非常有用的,虽然我最近才发现它,但现在正在运行一个betatesting程序,因此节省了我的时间。

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

  1. 在Provisioning Portal中创build分发证书。
  2. 获取您打算用于testing的iPhone的“设备ID”。 打开iTunes – >连接你的设备 – >select你的设备 – >在总结窗格中,点击序列号标签,它将变成标识符(40hex字符) – >select编辑,复制。
  3. 在Provisioning门户中,转至设备 – >添加新设备 – >input复制的设备ID,并为其指定名称。
  4. 在配给门户中,创build一个分配配给configuration文件。 (转到configuration – >分配)。 对于Distibutiontypes,请选中“AdHoc”。 select应用程序ID,如果你有一个分配证书,它会自动在这里被select。 select新input的设备并提交。 下载此configuration文件。
  5. 在Xcode,窗口 – >组织者。 点击Devices并selectLibrary – > Provisioning Profiles。 如果您是pipe理员,那么点击刷新应该获取新创build的configuration文件。 如果不是,则将特殊configurationconfiguration文件拖放到此列表中。
  6. 在Xcode中,在您的项目“生成设置” – >“代码签名标识” – >“发布”部分中,select“iPhone分发”。 对于“任何iOS SDK”,请select新创build的配给configuration文件。 它将在列表中提供。
  7. 在Xcode中,产品 – >存档。 一旦完成,存档,它将自动打开存档窗口。 select项目,然后单击分发,在分发窗口中,select“保存企业或AdHoc部署” – >select对应于新的供应configuration文件的“代码签名标识”。 继续这个过程,这将创build一个“.ipa”文件。
  8. 发送此.ipa文件和新的供应configuration文件以testingadHoc分发。

如何在testing设备上加载adHoc分配:

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

推送通知在Adhoc分发上工作:

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

在testing推送到开发环境时,应该记住一个严格的清单。 其中大部分已经在上面提到过了。 但这是解决我的问题,我想分享的一件事。 我希望它可以帮助别人。 那就是:

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

替代

如果您将节省更多时间,并且在生产环境中debugging 1testing这些通知,而无需每次都构build和分发,请按照下列步骤操作:

  1. 创build并安装您的分发configuration文件,
  2. 使用Releaseconfiguration而不是Debug来创build一个新的scheme(请参阅第二部分的说明)并select它,
  3. 确保您的应用程序目标版本设置下的发行版configurationselect了您的发行版configuration文件,
  4. 摇滚乐!

如何创build一个新的计划

  1. 点击左上angular的应用名称:

    在这里输入图像说明

  2. select“新计划…”并给它一个名字,

  3. 然后,再次打开此菜单进行编辑,然后select“编辑scheme…”
  4. 在“Build configuration”下select“Release”:

    在这里输入图像说明

  5. select它,所以它出现在左上angular,你就完成了!

1:你不能使用这个分配,也不能使用ad-hoc provisioning来debugging,看看这个线程