2017-08-16 55 views
1

我意识到我可以在开发中测试推送通知并在本地设备上生成prod build-但它们不适用于真实从TestFlight/App Store安装。Xcode:推送通知以构建设备工作,但不会将TestFlight/App Store安装在同一设备上

我认为这与Xcode的构建与归档签署有关,但我无法弄清楚如何解决我当前的配置。我使用Xcode自动签名,FYI。

我使用Mixpanel进行事件跟踪和通知,这也让我确认设备令牌正在成功检索。我在那里上传了我的生产推送证书。

如果我在我的设备上运行构建,我可以从日志消息中获取令牌并使用名为Pusher的不同实用程序(使用我的产品推送证书)发送一个推送 - 这非常完美。但是,如果我从TestFlight或App Store下载我的应用程序,启动它,从Mixpanel获取生成的令牌,并通过Mixpanel发送另一个通知,它从不显示。回到Pusher,如果我尝试使用Mixpanel中的令牌推送,我得到一个APN invalid token错误。

这两个令牌都是以同样的方式抓取的 - 紧接着用户同意通知或推送插件完成设置后。他们也抓住了相同的代码 - 但是一个来自正在运行的Xcode构建,另一个来自TestFlight上的存档。

项目设置 - 我有按压开关设置在Xcode的功能菜单,我已经生成用于开发和生产(当然,2意外督促我想这是很好。)推证书:

certs

我还创建了分发和开发资源调配配置文件。这就是我的问题所在 - 我读到Xcode不使用您创建的分发配置文件直到归档,并且直到此时才使用它,如果您在代码签名设置中选择了自动签名。

这就是为什么我在这里有2个配置文件?一个我创建的节目为活动&还列出推动下服务的通知,如果我展开下面的条目:

provisioning profiles

我的生产供应配置文件与签署的证书是球队我有相匹配的的iOS分发证书选择签约:

signing info

在写这件事,我意识到,也许我的发布版本的设置,具体签约,是错误的。我虽然他们也应该使用我的Iphone Distribution: MyCompany Inc (USA)证书(而不是默认的iOS Developer身份),因为我的分发供应配置文件使用相同的证书签名。不幸的是,这似乎也不工作。

如果我的构建设置是这样的(或者,如果我从下拉列表中用于发布版的身份选择通用iOS Distribution):

build settings

我不能实际建设 - 我得到一个错误,有冲突的供应设置。如果我在Release行(不是Any iOS SDK行)中使用iPhone Distribution: MyCompany Inc (USA)证书,我可以创建一个存档,但我看到相同的行为。

我确信这是它,因为我一直在使用我的MyCompany公司(美国)开发团队进行配置时验证/上传档案。

我也尝试关闭自动签名并将调试和发布配置文件设置为Apple开发人员网站中的开发人员配置配置文件。那里也没有运气。

就来全面circle-这是归档文件的摘要信息我使用自动签名时看到:

archive info

这是正确的,对不对?列出的身份用于签署选定的配置文件,因此,只要正确签署就应该是我所需要的,对吗?当然,给出其他设置。

我完全难住在这一点上 - 我该如何配置档案签名?

回答

0

这并没有最终成为一个签名问题 - 虽然我仍然对我需要为签署发布版本做些什么感到困惑,但似乎Xcode自动过程正确处理它,因为您的Apple开发者帐户中已创建正确的配置文件。

有2个问题在这里:

  1. 我用发推,以测试设备的推动效用有一个名为“应该使用沙箱环境”这是默认选中的选项。一旦我没有选中它,我可以发送推送到已下载TestFlight/App Store构建的设备。我没有意识到生产推送证书可以同时使用。
  2. 与此同时,我仍然有问题从Mixpanel发送通知。事实证明,出于某种原因,我尝试推送的一些设备(即使使用Pusher)似乎也没有得到具有某个优先级的通知。通过将"priority": 10添加到Mixpanel测试通知的自定义数据中,我能够成功发送/接收它们。我想通了这一点,在推的下面的截图与下拉玩:

enter image description here

我自己的设备将得到推动与任何选择的这3个级别,但其他设备将只接收与推选择“立即”级别或“优先级:无”级别。为什么?我不知道。

相关问题