信息
本文讨论了如何诊断和修复iOS设备上的安全邮件推送通知相关问题。
背景
Secure Mail的推送通知允许用户在应用程序刷新时接收更新,并在应用程序在后台运行或关闭时通过苹果推送通知服务(APNs)接收关于电子邮件和日历活动的通知。例如,当安全邮件应用程序图标上的徽章更新时,用户可以看到未读邮件计数的更新。推送通知还有助于及时交付锁屏更新的新消息。
要深入了解iOS安全邮件的推送通知,请参阅文章iOS安全邮件推送通知在Citrix产品文档中。
用户可能报告的问题
以下是用户报告的一些涉及apn的常见问题:- badge更新只反映本地未读消息,而不是来自服务器的未读消息。
- 徽标没有更新。
- 徽章更新缓慢。
- 只有当用户将安全邮件带到前台时,徽章才会更新。
- 当设备不在低功耗模式时,锁屏通知不会及时出现。
故障排除步骤
要解决这些问题,您可以遵循这些故障排除步骤,以便您和Citrix技术支持人员(如果涉及他们的话)能够快速确定问题的根本原因并进行修复。当任何一个解决方案有效时,推送通知就会在设备上重新开始工作。从设备上获取Secure Mail日志
在处理APNS问题时,安全邮件日志总是要获得的第一个信息。理想情况下,当问题发生时,应该要求用户立即发送日志。这样,它们将捕获与错误对应的日志。
确保后台应用程序刷新已启用
为了在设备锁定屏幕上生成通知,安全邮件要求启用后台应用程序刷新。这可以在你的iOS设置下启用一个一般一个后台应用程序刷新。
确保后台应用程序刷新开关在全球和安全邮件。
验证应用策略文件中是否启用了“安全邮件”的推送通知
首先要检查的是策略是否启用了apn。为此,打开应用程序支持包并找到用于安全邮件的文件Ctxlog_AppPolicies.xml。在这个文件中,下列XML实体与apn相关。如果没有为您的环境设置任何必需的策略,请确保在XenMobile控制台中将它们设置为必需的值。
实体名称 | 描述 | APNS运行所需的值 |
---|---|---|
PushNotificationsEWSHostName |
Exchange Web服务(EWS)端点的主机名。 | 不需要设置此值。 如果未设置此值,则使用ExchangeServer实体的值。如果使用自动发现来提供帐户,且未设置此值,则在自动发现期间解析EWS端点。 这里的空值并不表示问题或关注。 |
PushNotificationsEnabled |
APNs是否启用的标志 | 必须设置为true。 |
PushNotificationsListenerServiceHostName |
用于生成推送通知的侦听器服务端点的URL。 | 必须设置为有效的端点URL。有效的端点记录在https://docs.citrix.com/en-us/xenmobile-apps/10/secure-mail/push-notifications.html |
PushNotificationsTenantId |
与侦听器服务端点通信时使用的租户ID。 | 只有在使用安全邮件的企业部署时才需要这样做。 对于应用程序商店的安全邮件部署,您不需要这个值,因为安全邮件从Citrix云监听器服务请求所需的租户ID。 |
在“安全邮件推送通知事件”文件中查找错误
如果你在应用策略中没有发现异常,下一步就是确定推送通知订阅过程中是否存在错误。订阅推送通知时涉及到几个高级事件:- 获取安全邮件租户ID。该ID是在使用企业分发安全邮件时从策略中获取的。当您使用应用商店版本的安全邮件时,应用程序从Citrix云监听服务获取ID。
- 向Citrix云监听器服务注册设备。
- 使用Exchange Server订阅EWS推送通知。注意,安全邮件依赖于EWS而不是ActiveSync的推送通知功能。
- 使用EWS推送通知的详细信息更新Citrix云监听器服务。
为了解决这些和其他推送通知相关的事件,安全邮件10.5.5版本包含一个名为CtxLog_APNS_Events.csv的文件。
该文件包含关于以下事件的信息:- 订阅推送通知。
- 使用Citrix云侦听器服务验证推送通知订阅。
- 从Citrix云监听器服务检索租户ID。
该表项包含以下信息:
- 手术的日期和时间。
- 被执行的操作。
- 该操作的完成状态。
- 租户ID。
- 侦听器服务令牌。
- 租户ID +侦听器服务令牌组合。
最后三个条目允许Citrix轻松地找到设备的云监听器服务日志。这些字符串与侦听器服务日志中的条目对齐,允许技术支持更快地找到与任何故障相关的信息。
在后台应用程序刷新日志文件中查找推送通知事件
来自Secure Mail的日志文件包包括一个名为CTXLog_backgroundFetchSchedule.csv的文件。此文件记录后台应用程序刷新事件,以及指示推送通知已发送到设备的事件。
通过使用此文件,您可以得到安全邮件收到最后一个与推送通知相关的唤醒时间的大致数字。请注意,推送通知并不总是发送到安全邮件。未交付的例子包括:
- 设备处于低功耗模式。处理步骤
- 除新邮件到达外,其他事件导致收件箱的未读计数发生了变化。例如,一条消息被标记为已读。
在查看这个文件时,您将看到以下示例。
BackgroundFetch | 01 - 12月- 2016 12:47:19:310 (+ 0000) | 01 - 12月- 2016 12:47:34:826 (+ 0000) | 15 | UIBackgroundFetchResultNewData |
远程通知 | 01 - 12月- 2016 12:47:41:727 (+ 0000) | 01 - 12月- 2016 12:47:44:488 (+ 0000) | 2 | UIBackgroundFetchResultNewData |
远程通知 | 01 - 12月- 2016 12:48:01:026 (+ 0000) | 01 - 12月- 2016 12:48:03:345 (+ 0000) | 2 | UIBackgroundFetchResultNewData |
远程通知 | 01 - 12月- 2016 12:51:31:254 (+ 0000) | 01 - 12月- 2016 12:51:33:473 (+ 0000) | 2 | UIBackgroundFetchResultNewData |
远程通知 | 01 - 12月- 2016 12:55:41:419 (+ 0000) | 01 - 12月- 2016 12:55:44:738 (+ 0000) | 3. | UIBackgroundFetchResultNewData |
BackgroundFetch | 01 - 12月- 2016 12:55:41:483 (+ 0000) | 01 - 12月- 2016 12:56:09:489 (+ 0000) | 28 | UIBackgroundFetchResultNewData |
远程通知 | 01 - 12月- 2016 13:00:51:084 (+ 0000) | 01 - 12月- 2016 13:00:53:511 (+ 0000) | 2 | UIBackgroundFetchResultNewData |
远程通知 | 01 - 12月- 2016 13:02:56:311 (+ 0000) | 01 - 12月- 2016 13:02:59:193 (+ 0000) | 2 | UIBackgroundFetchResultNewData |
BackgroundFetch | 01 - 12月- 2016 13:02:56:373 (+ 0000) | 01 - 12月- 2016 13:03:24:330 (+ 0000) | 27 | UIBackgroundFetchResultNewData |
远程通知 | 01 - 12月- 2016 13:06:16:308 (+ 0000) | 01 - 12月- 2016 13:06:18:586 (+ 0000) | 2 | UIBackgroundFetchResultNewData |
远程通知 | 01 - 12月- 2016 13:09:31:460 (+ 0000) | 01 - 12月- 2016 13:09:33:480 (+ 0000) | 2 | UIBackgroundFetchResultNewData |
列如下:
- 唤醒类型(后台应用程序刷新或推送通知)。
- 醒来的时间。
- 唤醒处理完成的时间。
- 处理唤醒所需的秒数。
注意,远程通知文本显示正在接收推送通知。你可以通过这个文件来了解设备何时以及是否收到推送通知。
检查安全邮件日志中与推送通知相关的错误
您可以使用Secure Mail日志过滤掉与apns相关的日志消息。要做到这一点,您需要对安全邮件进行过滤。apn在Excel中。- 选择“过滤”。
选择“模块”列,并选择只显示Secure Mail.APNS。
只有这样,与安全邮件的推送通知方面相关的日志才会出现。
日志内容如下:
- 应用程序接收到的远程通知。
- 应用订阅APNs通知相关日志。
- 对当前订阅进行有效性检查的应用程序相关日志。
从这些信息中,您可以查找任何可能有助于缩小问题范围的错误或警告。
在安全邮件apn日志中可以看到的常见错误
在安全邮件日志中可能会看到以下错误。未将推送通知权限添加到安全邮件(仅限企业构建)
这种情况发生在企业发行版本中,客户没有在其应用程序ID上启用推送通知权利。您可以通过日志中的说明来确定这种情况。
注册远程通知失败,出现错误错误。域= NSCocoaErrorDomain错误。代码= 3000,错误。userInfo={NSLocalizedDescription =没有找到有效的'aps-environment'授权字符串的应用程序";
在这种情况下,请查看您的配置配置文件,并确保推送通知权限已启用,如图所示。
![用户添加图片](http://m.giftsix.com/support/files/public/support/article/CTX222834/images/0EM60000000DwFO.png)
APNs通知订阅失败
APNs通知的订阅可能完全失败。您可以通过查找与订阅推送通知相关的ERROR类别消息来找到答案。
常见的故障原因包括。
- 与端点通信的网络故障。检查是否为您的环境配置了适当的网络访问策略。
- 无法获得设备APNs令牌。这是一种罕见的情况,是由与Apple APNs服务器的网络故障或与用户的Apple ID相关的问题引起的。在这些罕见的情况下,可能需要对设备进行复位。
- 来自推服务的HTTP 500响应。检查租户ID是否正确。
以下几点需要注意:
- 如果启用了分割隧道,日志中的网络错误可能指向这个问题。
- 如果启用了全隧道,请检查NetScaler的配置是否允许客户端连接到侦听服务端点。
有效性检查表示设备订阅不再有效
安全邮件定期检查其对通知的订阅是否有效。通过向Citrix云监听器服务发出网络请求来进行安全邮件检查。该状态可能表明订阅不再有效。此时,Secure Mail将重新订阅推送通知。
当Exchange Server在大约半小时的时间内没有向Citrix云侦听器服务发送订阅的状态更新时,订阅将被视为无效。
你应该检查以下内容。
- 所有Exchange服务器是否都可以与Citrix侦听器服务端点进行外部通信?有关Citrix侦听器服务端点的列表,请参阅本文iOS安全邮件推送通知在Citrix产品文档中。确保配置了相应的防火墙规则。
- 注意Exchange Server事件日志中显示与侦听器端点通信问题的任何错误。您需要的事件日志信息将在这篇博文的后面描述。
在订阅EWS时可以看到身份验证失败
如果在注册推送通知时日志显示身份验证失败,那么很可能EWS被配置为使用与ActiveSync配置方式不同的身份验证形式。如果您正在为Secure Mail使用基于证书的身份验证,请确保EWS也配置为使用基于证书的身份验证。
如果您对安全邮件使用HTTP基本认证,请确保EWS使用NTLM认证。
有关此主题的更多信息,请参阅:
订阅EWS订阅时的HTTP 413错误
使用证书认证方式进行EWS认证时,客户端可能无法订阅HTTP 413错误日志。在本例中,确保在IIS上将uploadReadAheadSize配置为适当的值。uploadReadAheadSize属性在https://www.iis.net/configreference/system.webserver/serverruntime.将此值设置为至少为ActiveSync配置的最大附件大小。
在EWS事件日志中查找连接失败
如果由于订阅已失效而怀疑EWS订阅存在问题,可以查看EWS事件日志。
您可以在基于windows的计算机上打开事件日志,然后在事件查看器应用程序中查看和搜索它们。您可以使用应用程序搜索正在使用的侦听器服务端点URL的实例。例如,你可以搜索us- eastern . 1.mailboxlistener.xm.citrix.com。您需要的事件日志是来自托管用户邮箱的客户机访问服务器的Application logs。这些日志如下图所示。它们显示到侦听器服务的连接失败。本例中的事件源是MSExchange Web Services。
如果在与Citrix云侦听器服务端点URL相关的EWS事件日志中看到多个错误,请确保您的防火墙规则允许Exchange Server向外与Citrix云侦听器服务通信。
结论
正如我们在本文中讨论的,您可以自行执行许多步骤来解决iOS的Secure Mail的推送通知问题。通过使用客户端和服务器日志,您可以迅速缩小任何推送通知问题的根源。