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发行,请按照以下说明进行操作:
- 在Provisioning Portal中创build分发证书。
- 获取您打算用于testing的iPhone的“设备ID”。 打开iTunes – >连接你的设备 – >select你的设备 – >在总结窗格中,点击序列号标签,它将变成标识符(40hex字符) – >select编辑,复制。
- 在Provisioning门户中,转至设备 – >添加新设备 – >input复制的设备ID,并为其指定名称。
- 在配给门户中,创build一个分配配给configuration文件。 (转到configuration – >分配)。 对于Distibutiontypes,请选中“AdHoc”。 select应用程序ID,如果你有一个分配证书,它会自动在这里被select。 select新input的设备并提交。 下载此configuration文件。
- 在Xcode,窗口 – >组织者。 点击Devices并selectLibrary – > Provisioning Profiles。 如果您是pipe理员,那么点击刷新应该获取新创build的configuration文件。 如果不是,则将特殊configurationconfiguration文件拖放到此列表中。
- 在Xcode中,在您的项目“生成设置” – >“代码签名标识” – >“发布”部分中,select“iPhone分发”。 对于“任何iOS SDK”,请select新创build的配给configuration文件。 它将在列表中提供。
- 在Xcode中,产品 – >存档。 一旦完成,存档,它将自动打开存档窗口。 select项目,然后单击分发,在分发窗口中,select“保存企业或AdHoc部署” – >select对应于新的供应configuration文件的“代码签名标识”。 继续这个过程,这将创build一个“.ipa”文件。
- 发送此.ipa文件和新的供应configuration文件以testingadHoc分发。
如何在testing设备上加载adHoc分配:
- 打开iTunes,连接你的testing设备。
- 将新的configuration文件拖放到iTunes。
- 拖放.ipa文件iTunes。
- 同步你的设备。 这将加载应用程序。
推送通知在Adhoc分发上工作:
- 使用生产证书。
- 使用生产APN主机:gateway.push.apple.com
- 使用生产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和分发,请按照下列步骤操作:
- 创build并安装您的分发configuration文件,
- 使用Releaseconfiguration而不是Debug来创build一个新的scheme(请参阅第二部分的说明)并select它,
- 确保您的应用程序目标版本设置下的发行版configurationselect了您的发行版configuration文件,
- 摇滚乐!
如何创build一个新的计划
-
点击左上angular的应用名称:
-
select“新计划…”并给它一个名字,
- 然后,再次打开此菜单进行编辑,然后select“编辑scheme…”
-
在“Build configuration”下select“Release”:
-
select它,所以它出现在左上angular,你就完成了!
1:你不能使用这个分配,也不能使用ad-hoc provisioning来debugging,看看这个线程