繁体   English   中英

Xcode:推送通知以在设备上运行,但不能在同一设备上安装TestFlight / App Store

[英]Xcode: push notifications to build on device work but not to TestFlight/App Store install on same device

我已经意识到我可以在本地设备上的开发和产品构建中测试推送通知,但是它们不能与TestFlight / App Store中的实际安装一起使用。

我认为这与Xcode的版本与存档签名有关,但是我无法弄清楚该如何解决当前配置。 我使用Xcode自动签名,仅供参考。

我使用Mixpanel进行事件跟踪和通知,这也使我可以确认已成功检索设备令牌。 我的生产推送证书已上传到此处。

如果我的设备上正在运行构建,则可以从日志消息中获取令牌,然后使用另一个名为Pusher的实用程序(使用我的产品推送证书)将推送发送给它-效果很好。

但是,如果我从TestFlight或App Store下载我的应用程序,启动它,从Mixpanel获取结果令牌,然后通过Mixpanel发送另一个通知,它将永远不会显示。 回到Pusher,如果尝试使用Mixpanel的令牌进行推送,则会收到APN invalid token错误。

在用户同意通知或推送插件完成设置后,立即以相同的方式获取了这两个令牌。 它们也被相同的代码捕获-一个是从运行的Xcode构建中获取的,另一个是从TestFlight上的存档中获取的。

项目设置-我在Xcode Capabilities菜单中将Push开关设置为on,并且我已经为开发和生产生成了推送证书(嗯,偶然生成了2个推送证书。我认为这很好):

证书

我还创建了分发和开发配置文件。 这就是我的问题所在-我读到Xcode在归档之前不使用您创建的分发配置文件,而在此之前,如果您在代码签名设置中选择了“自动签名”,则使用它自己的。

这就是为什么我在这里有2个个人资料吗? 如果我展开以下条目,我创建的将显示为“活动”,并且还会在服务下列出“推送通知”:

供应配置文件

与我的生产配置文件进行签名的证书是与我选择签名的团队匹配的iOS分发证书:

签名信息

在撰写本文时,我意识到也许我的发行版本设置(特别是签名)是错误的。 尽管我也应该使用我的Iphone Distribution: MyCompany Inc (USA)证书(而不是默认的iOS Developer身份),因为我的Distribution Provisioning配置文件已使用同一证书签名。 不幸的是,这似乎也不起作用。

如果我的构建设置如下所示(或者如果我从“发行版”标识的下拉列表中选择通用的iOS Distribution版):

构建设置

我实际上无法构建-我收到一条错误消息,指出配置设置存在冲突。 如果仅在Release行(而不是Any iOS SDK行)中使用iPhone Distribution: MyCompany Inc (USA)证书,则可以创建一个存档,但是会看到相同的行为。

我一直以为是确定的,因为我一直在使用MyCompany Inc(USA)开发团队在验证/上传档案时进行配置。

我还尝试关闭自动签名,并将调试和发布配置文件设置为我在Apple Developer站点中创建的dev和prod供应配置文件。 那里也没有运气。

简而言之,这是使用自动签名时看到的存档摘要信息:

存档信息

没错吧? 列出的身份用于对所选的配置文件进行签名,因此就适当的签名而言,这应该是我所需要的,对吗? 当然,考虑其他设置。

在这一点上,我完全感到困惑-我应该如何配置档案签名?

毕竟,这最终并没有成为一个签名问题,尽管我仍然对为发布版本进行签名所需要做的事情有些困惑,但考虑到正确的配置文件已经使Xcode自动流程能够正确处理已在您的Apple Developer帐户中创建。

这里有2个问题:

  1. 我用来发送推送到测试设备的Pusher实用程序具有一个称为“应该使用沙盒环境”的选项,该选项默认情况下处于选中状态。 取消选中后,我可以将推送发送到已下载TestFlight / App Store版本的设备。 我不知道可以同时使用生产推送证书。
  2. 同时,我仍然无法从Mixpanel发送通知。 事实证明,由于某种原因,我尝试推送到的某些设备(即使使用Pusher)似乎没有得到具有特定优先级的通知。 通过向Mixpanel测试通知的自定义数据添加"priority": 10 ,我能够成功发送/接收它们。 我通过玩下面的Pusher屏幕截图中的下拉菜单来解决这个问题:

在此处输入图片说明

我自己的设备会收到选择了这3个级别中的任何一个的推送,但是其他设备只会收到选择了“立即”级别或“优先级:无”级别的推送。 为什么? 我不知道。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM