{ "id": "173570", "key": "TIMOB-27049", "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": "20412", "name": "Release 8.1.0", "archived": false, "released": true, "releaseDate": "2019-08-13" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2019-06-04T22:31:49.000+0000", "created": "2019-05-01T13:19:28.000+0000", "priority": { "name": "None", "id": "6" }, "labels": [], "versions": [ { "id": "19882", "name": "Release 8.0.0", "archived": false, "released": true, "releaseDate": "2019-03-14" }, { "id": "20238", "description": "", "name": "Release 7.5.0", "archived": false, "released": true, "releaseDate": "2018-11-15" }, { "id": "20412", "name": "Release 8.1.0", "archived": false, "released": true, "releaseDate": "2019-08-13" } ], "issuelinks": [ { "id": "57612", "type": { "id": "10122", "name": "Gantt: start-finish", "inward": "is triggered by", "outward": "is triggering" }, "inwardIssue": { "id": "172051", "key": "TIMOB-26294", "fields": { "summary": "iOS: Added Ti.App event \"userinteraction\" and property \"trackUserInteraction\"", "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" } }, "priority": { "name": "Critical", "id": "1" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } } ], "assignee": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2019-06-04T22:31:49.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": [ { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "In TIMOB-26294, the {{Ti.App.trackUserInteraction}} property and {{userinteraction}} event have been added. On iOS, this can lead to crashes because other receivers of the {{UIApplicationDelegate}} method {{sendEvent:}} can influence the way this method behaves because the {{super}} call is before the override-implementation. Quote Apple:\r\n{quote}\r\nIf you require it, you can intercept incoming events by subclassing UIApplication and overriding this method. For every event you intercept, you must dispatch it by calling {{\\[super sendEvent:event\\]}} after handling the event in your implementation.\r\n{quote}\r\nSo the fix is to simply move the super-call after the implementation. The Crashlytics stack-trace to prove this crash:\r\n{code}\r\ncom.apple.main-thread\r\n0 QuartzCore 0x108be3fbf classDescription(objc_class*) + 16\r\n1 QuartzCore 0x108be53d8 CAObject_defaultValueForAtom + 28\r\n2 QuartzCore 0x108b77f03 CA::Layer::default_value(unsigned int, _CAValueType, void*) + 125\r\n3 QuartzCore 0x108b76fea CA::Layer::getter(unsigned int, _CAValueType, void*) + 106\r\n4 QuartzCore 0x108b84ae7 ___ZL36cons_CALayer_kCAValueAssignedPointerjb_block_invoke + 57\r\n5 UIKitCore 0x1180e6967 _UIViewLayerGetView + 40\r\n6 UIKitCore 0x1180d87ec __scrollViewAncestorOfView + 105\r\n7 UIKitCore 0x118054ead -[UIScrollView setBounds:] + 537\r\n8 UIKitCore 0x117e327aa -[UITableView setBounds:] + 234\r\n9 UIKitCore 0x118056333 -[UIScrollView setContentOffset:] + 509\r\n10 UIKitCore 0x117e33b58 -[UITableView setContentOffset:] + 311\r\n11 UIKitCore 0x11805bdf1 -[UIScrollView _updatePanGesture] + 2464\r\n12 UIKitCore 0x1177f914d -[UIGestureRecognizerTarget _sendActionWithGestureRecognizer:] + 57\r\n13 UIKitCore 0x117801c69 _UIGestureRecognizerSendTargetActions + 109\r\n14 UIKitCore 0x1177ff5ba _UIGestureRecognizerSendActions + 311\r\n15 UIKitCore 0x1177fe897 -[UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 966\r\n16 UIKitCore 0x1177f0c4e _UIGestureEnvironmentUpdate + 2820\r\n17 UIKitCore 0x1177f0108 -[UIGestureEnvironment _deliverEvent:toGestureRecognizers:usingBlock:] + 478\r\n18 UIKitCore 0x1177efe96 -[UIGestureEnvironment _updateForEvent:window:] + 200\r\n19 UIKitCore 0x117c4b5bc -[UIWindow sendEvent:] + 4057\r\n20 UIKitCore 0x117c29d16 -[UIApplication sendEvent:] + 356\r\n21 MyApp 0x1045eef14 -[TiUIApplication sendEvent:] (TiUIApplication.m:18)\r\n22 UIKitCore 0x117cfa293 __dispatchPreprocessedEventFromEventQueue + 3232\r\n23 UIKitCore 0x117cfcbb9 __handleEventQueueInternal + 5911\r\n24 CoreFoundation 0x10ede5be1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17\r\n25 CoreFoundation 0x10ede5463 __CFRunLoopDoSources0 + 243\r\n26 CoreFoundation 0x10eddfb1f __CFRunLoopRun + 1231\r\n27 CoreFoundation 0x10eddf302 CFRunLoopRunSpecific + 626\r\n28 GraphicsServices 0x11368d2fe GSEventRunModal + 65\r\n29 UIKitCore 0x117c0fba2 UIApplicationMain + 140\r\n30 MyApp 0x104577902 main (main.m:66)\r\n31 libdyld.dylib 0x1109ad541 start + 1\r\n{code}", "attachment": [], "flagged": false, "summary": "iOS: Simulator can crash because of the \"trackUserInteraction\" feature", "creator": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "environment": "SDK 7.5 and up, Simulator only", "comment": { "comments": [ { "id": "448110", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Pull: https://github.com/appcelerator/titanium_mobile/pull/10872", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-05-01T13:22:08.000+0000", "updated": "2019-05-01T13:22:08.000+0000" }, { "id": "448234", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~hknoechel] are there any reproducible testing steps you could provide?", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-05-08T11:13:06.000+0000", "updated": "2019-05-08T11:13:06.000+0000" }, { "id": "448709", "author": { "name": "topener", "key": "topener", "displayName": "Rene Pot", "active": true, "timeZone": "Europe/Berlin" }, "updateAuthor": { "name": "topener", "key": "topener", "displayName": "Rene Pot", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-05-29T12:11:42.000+0000", "updated": "2019-05-29T12:11:42.000+0000" }, { "id": "448798", "author": { "name": "kmahalingam", "key": "kmahalingam", "displayName": "Keerthi Mahalingam", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Verified sdk 8.1.0.v20190603131253 and master8.2.0.v20190603133455. Simulator is not crashed on maximizing and minimizing multiple times.\r\n*Test Environment:*\r\n{code}\r\nOperating System\r\n Name = Mac OS X\r\n Version = 10.13.6\r\n Memory = 17179869184\r\nNode.js\r\n Node.js Version = 8.9.1\r\n npm Version = 5.5.1\r\nTitanium CLI\r\n CLI Version = 5.1.1\r\nTitanium SDK\r\n SDK Version = 8.1.0.v20190603131253 and 8.2.0.v20190603133455\r\nCli = 7.0.11\r\nStudio =5.1.2.201903111843\r\nDevice = iPhone 6s plus iOS 12\r\nSimulator =iPhone 6 plus iOS 11,Iphone XR iOS 12 \r\n{code}", "updateAuthor": { "name": "kmahalingam", "key": "kmahalingam", "displayName": "Keerthi Mahalingam", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2019-06-03T20:53:47.000+0000", "updated": "2019-06-04T22:31:38.000+0000" } ], "maxResults": 4, "total": 4, "startAt": 0 } } }