Debug native code in Mobile App / Analyzing Apple crash reports

Since the last version of our app went live, we are receiving reports that our app fails to start for some Apple users. We've investigated the OutSystems logs for the affected users and could not find any trace of those users contacting the OutSystems server. They report that when they start the app the screen remains blank. So it seems that the app doesn't even startup fully and reaches the stage where Cordova loads a screen.

In App Store Connect App Analytics we also can see that the recent version causes a crash for a certain amount of users.

In XCode we can see the details of those crashes, but I'm not able to understand/debug the backtrace. I don't know of a way to link this crash information to an XCode project or if this is possible at all?

Below you can find a screenshot of the crashlog in XCode.



I suspect that it is caused by the Pushwoosh plugin, because this is they only plugin that we added in the last release. However above screenshot doesn't help me to understand what the root cause of this crash is.


So any tips to help me investigate this are more than welcome.

What MABS version did you use to generate the application?

@Bas de Jong: MABS 6.1. 

What I understand from support is that they can provide the source code used for the build for a couple of days after the actual build. They've retrieved the source code, but so far that has not been ver helpful. We are now trying to get our hands on some logging from an actual device that shows the crash.

Hi Kilian,


Any particular steps you are facing this error.


We are also facing same issue in our mobile app.open tickets with OS support but still its not resolved.
When due to any reason our app in not able to update on device that time we got this crash error in our case.

@Salman Ansari: The crash happens when the app opens. The first screen is not even loaded. The fact that we cannot find any communication between the server and the devices with issues confirm that.
This release we included the Pushwoosh plugin and a custom build Tapjacking plugin based on https://github.com/BeDefended/TapjackingProtectionPlugin
We did not experience any issues before. Since the Tapjacking plugin does not have an implementation for iOS, I expect that we are facing an issue with the Pushwoosh plugin.
So far I'm really happy with the response of Support. Since we are experiencing this issue in production, the ticket has been prioritized as an Urgent ticket. They have symbolicated our crashlog, but that didn't provide more information. They also provided the source code that was used for the native build. They had to remove the SSLPinning module to get it to work.
From the symbolicated crashlog my understanding is that the crash happens when the javascript initialization code of a plugin runs.

Triggered by Thread:  0
0x00000001000000e4 (in MY_APP)
0x000000010000003c (in MY_APP)
0x0000000100000074 (in MY_APP)
0x0000000100000034 (in MY_APP)
0x0000000100000104 (in MY_APP)
0x000000010000003c (in MY_APP)
+[OSHTTPFactory defaultHttpHeaders] (in MY_APP) (OSHTTPFactory.m:0)
+[OSHTTPFactory defaultConfiguration] (in MY_APP) (OSHTTPFactory.m:0)
-[OSPureeServerOutput urlSession] (in MY_APP) (OSPureeServerOutput.m:0)
-[OSPureeServerOutput writeChunk:completion:] (in MY_APP) (OSPureeServerOutput.m:0)
-[PURBufferedOutput callWriteChunk:] (in MY_APP) (PURBufferedOutput.m:213)
-[PURBufferedOutput flush] (in MY_APP) (PURBufferedOutput.m:171)
__26-[PURBufferedOutput start]_block_invoke (in MY_APP) (PURBufferedOutput.m:98)
0x0000000100000020 (in MY_APP)
0x0000000100000014 (in MY_APP)
0x0000000100000340 (in MY_APP)
0x0000000100000010 (in MY_APP)
0x00000001000006ac (in MY_APP)
0x00000001000001e0 (in MY_APP)
0x00000001000000e8 (in MY_APP)
-[WKWebView(SynchronousEvaluateJavaScript) stringByEvaluatingJavaScriptFromString:] (in MY_APP) + 336
+[CDVUserAgentUtil originalUserAgent] (in MY_APP) + 680
-[CDVViewController userAgent] (in MY_APP) + 312
-[CDVWKWebViewEngine pluginInitialize] (in MY_APP) (CDVWKWebViewEngine.m:0)
-[OSWKWebViewEngine pluginInitialize] (in MY_APP) (OSWKWebViewEngine.m:35)
-[CDVViewController registerPlugin:withClassName:] (in MY_APP) + 236
-[CDVViewController newCordovaViewWithFrame:] (in MY_APP) + 924
-[CDVViewController createGapView] (in MY_APP) + 168
-[CDVViewController viewDidLoad] (in MY_APP) + 392
-[MainViewController viewDidLoad] (in MY_APP) (MainViewController.m:78)
0x0000000100000068 (in MY_APP)
0x00000001000003b8 (in MY_APP)
0x0000000100000020 (in MY_APP)
0x00000001000000b4 (in MY_APP)
0x00000001000000ec (in MY_APP)
0x0000000100000170 (in MY_APP)
0x0000000100000034 (in MY_APP)
-[CDVAppDelegate application:didFinishLaunchingWithOptions:] (in MY_APP) + 436
-[AppDelegate application:didFinishLaunchingWithOptions:] (in MY_APP) (AppDelegate.m:36)
(...)