{ "id": "174399", "key": "TIMOB-27583", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "10153", "key": "TIMOB", "name": "Titanium SDK/CLI", "projectCategory": { "id": "10100", "description": "Titanium and related SDKs used in application development", "name": "Client" } }, "fixVersions": [ { "id": "20832", "name": "Release 8.3.0", "archived": false, "released": true, "releaseDate": "2019-11-25" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2019-11-21T23:47:21.000+0000", "created": "2019-11-14T02:03:04.000+0000", "priority": { "name": "None", "id": "6" }, "labels": [ "engSchedule" ], "versions": [], "issuelinks": [], "assignee": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2019-11-21T23:47:21.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [], "description": "The customer is using the MobileIron MDM tool for app deployment and using mobileiron wrapper tool for enabling apptunnel for our app (VPN less app) when we upload the iOS 13 app to MDM the app crashes. After logged a support call with Mobileiron and the root cause for the crash was identified that APSanalytics library trying to send the synchronous request on the main thread which is against Apple's recommendation\r\n\r\nAttached the response from MobileIron support below. Currently, we have disabled the Analytics module (in tiapp.xml) in our app and the app is not crashing. But we are losing the Appcelerator analytics data.\r\n\r\ncan you please take a look at the issue and fix it the SDK.\r\n\r\n{quote}\r\nMobileiron Support engineer response\r\n\r\nWe have identified why your wrapped app is crashing. The app uses Appcelerator's APSAnalytics library to send requests on app launch before AppConnect is initialized. By design, AppConnect blocks any network requests until any AppTunnel Rules are received. However, APSAnalytics makes a synchronous request on the main thread, which is against Apple's recommendations.\r\n\r\ndefault 12:54:03.431961 +0200 mPeople [ERROR] APSAnalytics: error sending request: The operation couldn’t be completed. Request timed out earlier than tunneling config was received.\r\ndefault 12:54:03.434021 +0200 mPeople [INFO] APSAnalyticsStore: session.start\r\ndefault 12:54:03.439620 +0200 mPeople [INFO] APSAnalyticsStore: mPeople_iphone_12.4.1_Home\r\ndebug process_assertion 12:54:03.444635 +0200 mPeople Request for backgroundTimeRemaining from pid -1\r\ndefault 12:54:03.444799 +0200 mPeople [DEBUG] APSAnalytics: Attempting to send 2 analytics event(s)\r\n\r\nWhy the issue happened in 4.4.1: AppConnect 4.0 introduced networking changes for requests being processed without any AppConnect configuration. Now, we pause these until the config has been received. This was done to improve security of data-in-transit. This works for requests off the main thread, but for synchronous requests blocking the main thread, those are deadlocked.\r\n\r\nNote that even in the unwrapped app, we can force an identical crash by setting \"Network Link Conditioner\" to \"100% Loss\", then launched the unwrapped application, minimized it, and open it again. Then, with \"Network Link Conditioner\" set to \"Very Bad Network\" the app also freezes, but for less than 10 seconds, so iOS doesn't kill it.\r\n\r\nConclusion: This looks like an Appcelerator bug. Perhaps they have a newer version available, or perhaps you can init APSAnalytics later in the app launch sequence, or not use it at all.\r\n\r\n{quote}\r\n", "attachment": [], "flagged": false, "summary": "iOS: Crash with MobileIron wrapped app", "creator": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "subtasks": [], "reporter": { "name": "sliang", "key": "sliang", "displayName": "Shuo Liang", "active": true, "timeZone": "Asia/Harbin" }, "environment": "SDK: 8.2.1\r\nXcode 11\r\niOS version: 13\r\nMDM: MobileIron", "closedSprints": [ { "id": 1171, "state": "closed", "name": "2019 Sprint 24", "startDate": "2019-11-18T16:40:09.114Z", "endDate": "2019-12-01T16:40:00.000Z", "completeDate": "2019-12-02T23:06:24.654Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "452790", "author": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "body": "aps_sdk: https://github.com/appcelerator/aps_sdk/pull/339\r\nmaster: https://github.com/appcelerator/titanium_mobile/pull/11345\r\n8_3_X: https://github.com/appcelerator/titanium_mobile/pull/11356", "updateAuthor": { "name": "gmathews", "key": "gmathews", "displayName": "Gary Mathews", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-11-19T18:47:21.000+0000", "updated": "2019-11-20T22:51:09.000+0000" }, { "id": "452838", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "FR Passed.\r\nPR's merged.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-11-21T00:19:49.000+0000", "updated": "2019-11-21T00:19:49.000+0000" }, { "id": "452880", "author": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Verified the fix with SDK 8.3.0.v20191120160657 & 9.0.0.v20191121074219.\r\nClosing.", "updateAuthor": { "name": "lchoudhary", "key": "lchoudhary", "displayName": "Lokesh Choudhary", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-11-21T23:47:16.000+0000", "updated": "2019-11-21T23:47:16.000+0000" } ], "maxResults": 4, "total": 4, "startAt": 0 } } }