Mobilefirst V7.1上带有Clevertap推送通知的启动屏幕上的iOS应用程序崩溃问题

Mobilefirst V7.1上带有Clevertap推送通知的启动屏幕上的iOS应用程序崩溃问题,ios,push-notification,apple-push-notifications,ibm-mobilefirst,clevertap,Ios,Push Notification,Apple Push Notifications,Ibm Mobilefirst,Clevertap,单击推送通知并显示以下错误后,iOS移动应用程序崩溃。应用程序关闭时,正在观察Clevertap推送通知的崩溃。当移动应用程序处于后台或前台时,不会发生崩溃。该应用程序是使用Mobilefirst V7.1构建的,所有Mobilefirst库和方法都用于处理iOS应用程序上的推送通知 我们已尝试从设备中取出日志,并在应用程序崩溃之前获取日志 2018-04-30 15:07:39.466141+0530 AppDev[1386:622734] [DEBUG] [WL_AFHTTPRequestO

单击推送通知并显示以下错误后,iOS移动应用程序崩溃。应用程序关闭时,正在观察Clevertap推送通知的崩溃。当移动应用程序处于后台或前台时,不会发生崩溃。该应用程序是使用Mobilefirst V7.1构建的,所有Mobilefirst库和方法都用于处理iOS应用程序上的推送通知

我们已尝试从设备中取出日志,并在应用程序崩溃之前获取日志

2018-04-30 15:07:39.466141+0530 AppDev[1386:622734] [DEBUG] [WL_AFHTTPRequestOperationManagerWrapper_PACKAGE] -[WLAFHTTPRequestOperationManagerWrapper start] in WLAFHTTPRequestOperationManagerWrapper.m:356 :: Starting the request with URL https://wls.**.co.in:80/Dev/apps/services/api/AppDev/iphone/query

2018-04-30 15:07:40.337279+0530 AppDev[1386:619825] [FATAL] [WORKLIGHT] Uncaught Exception: *** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]

2018-04-30 15:07:40.355216+0530 AppDev[1386:619825] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 1 beyond bounds [0 .. 0]'

*** First throw call stack:
(0x182653d38 0x181b68528 0x1825ecc44 0x18251cdbc 0x100574328 0x100573dcc 0x18302c4c4 0x1825fc99c 0x1825fc6c0 0x1825fbec0 0x1825f9aa8 0x18251a2d8 0x1843abf84 0x18bac7880 0x100477f4c 0x18203e56c)
libc++abi.dylib: terminating with uncaught exception of type NSException

我无法确定Mobilefirst库或Clevertap库是否存在问题。但日志清楚地表明问题首先出现在Mobilefirst上。

我们可以通过更改iOS应用程序的配置文件来管理崩溃问题。我们已经注释掉了配置文件中的默认推送消息处理,现在应用程序在单击推送消息时不会崩溃。但我们无法读取推送消息,也无法在应用程序打开时在警报消息中显示推送消息的详细信息

发生此问题是因为两个MFP SDK都无法解析从CleverTap发送的推送通知的格式。当应用程序启动MFP Push和CleverTap插件争夺消息时,MFP Push插件很可能首先到达并尝试读取消息

由于应用程序中已经存在CleverTap SDK,因此可以关闭MFP推送插件以确保只有CleverTap SDK读取所有通知

要执行此操作,请导航到:

<Workspace>/<HybridProjectName>/apps/<HybridApplication>/iphone/native 
//应用程序//iphone/native
文件夹

在此处打开config.xml并找到以下行:

<feature name="Push">
        <param name="ios-package" value="Push" />
        <param name="onload" value="true" />
</feature>

改为:

<param name="onload" value="false" />

这将阻止加载MFP推送插件


注意:如果重新构建iPhone/iPad环境,此更改将被覆盖。

请澄清,您是否正在发送clevertap通知?您正在使用MFP push来接收这些通知吗?您好@VivinK,很高兴您能处理这个问题。是的,我们使用Clevertap发送推送通知,并使用MFP推送接收这些通知。请阅读-总结是,这不是一个理想的方式来解决志愿者,可能会适得其反获得答案。请不要将此添加到您的问题中。最可能的原因是格式不同-Clevertap发送的内容与MFP服务器将发送的内容不同。但是你每次都会看到这个错误,这让我很惊讶。您能否从MFP服务器发送一个通知,并通过点击该通知确认此通知在打开应用程序时不会使应用程序崩溃。@VivinK是的,我们已尝试发送MFP推送,但未发生任何情况。但崩溃只发生在Clevertap推送通知中。我只想知道我需要覆盖哪个Mobilefirst方法来处理iOS应用程序中的推送消息