2013-03-06 60 views
21

我一直在阅读一堆苹果文档以及许多其他SO问题,但还没有找到这个特定问题的答案。在AdHoc发布版上使用沙箱APNS iOS版

我有一个现有的工作流程来为QA成员和beta测试人员生成AdHoc分布版本。现在我已经添加了对推送通知的支持,我希望能够对这些通知路径进行测试。

我的印象是,开发人员构建,使用开发配置文件进行签名,为沙箱/开发APNS环境生成令牌,并使用分发配置文件签署分发版本(无论是用于AdHoc分发或AppStore分发),为生产APNS环境生成令牌。我相信这可以通过打开不同的.mobileprovision文件并检查密钥来确认。

我想知道是否有办法让我的AdHoc Distribution构建使用沙盒APNS环境,而不是生产APNS环境。

如果我真的想让QA和beta测试人员使用沙箱APNS,我是否会想方设法让他们运行开发构建,而不是分发构建?

或者是我对事物工作方式的假设? (参考this postthis post

+0

更多关于我的组织的棒球理由......有一个API层抽象出一些通知职责,在许多其他服务中,它有2个“模式”(分段/生产),所以在将内部“分段”API与沙箱APNS环境相关联时,这是有意义的,但这可能是不必要的区分。 – beno 2013-03-06 15:08:00

回答

37

我也发现了一些提及到的AdHoc在APNS环境的上下文:

注:还有就是推送服务 一个单独的持久连接为每个环境。操作系统为开发构建建立了一个持久的 连接到沙箱环境;特设 和分销版本连接到生产环境。

它取自Technical Note TN2265。 我猜这个笔记证实你不能在AdHoc发行版中使用沙箱环境。

+0

不错的发现,我没有看到任何地方明确指出。 – beno 2013-03-06 16:19:46

+0

也发现了这个答案:http://stackoverflow.com/questions/2625773/why-not-use-development-provisioning-instead-of-ad-hoc – beno 2013-03-06 18:02:41

+0

这就是对的。对于GCM,只需转到AppDelegate.swift,找到方法didRegisterForRemoteNotificationsWithDeviceToken,并用kGGLInstanceIDAPNSServerTypeSandboxOption替换为kGGLInstanceIDAPNSServerTypeSandboxOption:true:false。之后,你不再处于沙箱环境中。 – stakahop 2016-05-31 09:51:44

4

苹果使用了不同的服务器:

  1. 应用与发展概况
  2. 所有其他配置文件(即席,室内和AppStore的)签署。这些将通过Live Server进行。