在Mobilefirst V7.1上使用Clevertap推送通知在Splash Screen上发布iOS App崩溃问题

时间:2018-05-04 06:22:09

标签: ios push-notification apple-push-notifications ibm-mobilefirst clevertap

单击推送通知后iOS移动应用程序崩溃并显示以下错误。应用程序关闭时,Clevertap推送通知会发生崩溃。移动应用程序处于后台或前台时,不会发生崩溃。 Application是使用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 Libraries或Clevertap库是否存在问题。但是日志清楚地表明问题出现在Mobilefirst上。

2 个答案:

答案 0 :(得分:0)

不知怎的,我们只需更改iOS应用程序的配置文件即可管理崩溃问题。我们在配置文件中注释掉了默认的推送消息处理,现在应用程序在单击Push消息时没有崩溃。但是,当打开应用程序时,我们无法读取推送消息并且无法在警报消息中显示推送消息的详细信息。

答案 1 :(得分:0)

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

由于您已在应用程序中同时存在CleverTap SDK,因此您可以关闭MFP Push插件以确保只有CleverTap SDK会读取所有通知。

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

<Workspace>/<HybridProjectName>/apps/<HybridApplication>/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 Push插件。

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