0

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 上。

4

2 回答 2

0

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

于 2018-05-08T07:04:47.127 回答
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 环境,此更改将被覆盖。

于 2018-05-08T20:33:02.107 回答