{ "id": "176251", "key": "TIMOB-28513", "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": "21243", "description": "", "name": "Release 10.0.2", "archived": false, "released": true, "releaseDate": "2021-08-10" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2021-08-05T13:59:23.000+0000", "created": "2021-07-07T13:47:51.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "AppClips", "getarguments", "ios" ], "versions": [], "issuelinks": [ { "id": "59303", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "176254", "key": "TIMOB-28507", "fields": { "summary": "iOS: Ti.App \"arguments\" property and getArguments() method are not defined as of 10.0.0", "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": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "59308", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "174230", "key": "TIMOB-28514", "fields": { "summary": " iOS: Ti.App.getArguments() crashes app on cold start when launched via universal link", "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": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2021-08-05T13:59:23.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": "If an App Clip has been added to an app, and the user opens the App Clip via a QR code etc, the normal process is for either a) the App Clip runs independently if the host app isn't installed or b) the host app is launched if installed.\r\n\r\nIn the case of b), if the app is running this works and the app clip opens the app and getArguments() can be used to get the resultant data from the app clip.\r\n\r\nIf however the app is closed, when the user opens from the app clip the app opens and immediately crashes when getArguments is called. The error is:\r\n\r\n{quote}Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString count]: unrecognized selector sent to instance 0x10981d400'\r\nFirst throw call stack:\r\n(0x19a802754 0x1af2c97a8 0x19a705c3c 0x19a8052ac 0x19a8075b0 0x103921d2c 0x103921c14 0x19bbc8d4c 0x19a7a1cb0 0x19a7a3284 0x1038e3520 0x1039211d4 0x19bbd5458 0x19a77d22c 0x19a77ce28 0x19a77c278 0x19a77602c 0x19a775360 0x1b1db3734 0x19d1f0584 0x19d1f5df4 0x10252e550 0x19a431cf8){quote}\r\n\r\nExpected behaviour would be for the app to cold start from an App Clip and getArguments() should return the payload without the app crashing.", "attachment": [], "flagged": false, "summary": "iOS: App crashes on cold launch with Ti.App.getArguments() if opened from App Clip", "creator": { "name": "jasonkneen", "key": "jasonkneen", "displayName": "Jason Kneen", "active": true, "timeZone": "Europe/London" }, "subtasks": [], "reporter": { "name": "jasonkneen", "key": "jasonkneen", "displayName": "Jason Kneen", "active": true, "timeZone": "Europe/London" }, "environment": null, "comment": { "comments": [ { "id": "458854", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Which version of the Titanium SDK are you having this issue on?\r\n_(I'm assuming you're running Titanium 9.x.x?)_\r\n\r\nI ask, because there is a *regression* in Titanium 10.0.0 where the {{Ti.App.arguments}} always returns {{undefined}} and the deprecated {{Ti.App.getArguments()}} function is not defined either. Basically, there is no way to grab the arguments on app startup via Titanium 10.0.0.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2021-07-14T03:58:18.000+0000", "updated": "2021-07-14T03:58:18.000+0000" }, { "id": "458856", "author": { "name": "jasonkneen", "key": "jasonkneen", "displayName": "Jason Kneen", "active": true, "timeZone": "Europe/London" }, "body": "9.3.2.GA\n\nGiven this is a core feature of iOS I do think this is a priority to fix. ", "updateAuthor": { "name": "jasonkneen", "key": "jasonkneen", "displayName": "Jason Kneen", "active": true, "timeZone": "Europe/London" }, "created": "2021-07-14T07:36:54.000+0000", "updated": "2021-07-14T07:36:54.000+0000" }, { "id": "458857", "author": { "name": "jasonkneen", "key": "jasonkneen", "displayName": "Jason Kneen", "active": true, "timeZone": "Europe/London" }, "body": "This still crashes when launched from an appclip (backported the fix to my local 9.3.2.GA SDK)", "updateAuthor": { "name": "jasonkneen", "key": "jasonkneen", "displayName": "Jason Kneen", "active": true, "timeZone": "Europe/London" }, "created": "2021-07-14T10:47:45.000+0000", "updated": "2021-07-14T10:47:45.000+0000" }, { "id": "458925", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR: https://github.com/appcelerator/titanium_mobile/pull/12988", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2021-07-29T10:38:41.000+0000", "updated": "2021-07-29T10:38:41.000+0000" }, { "id": "458928", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "[~hknoechel], I assume this will fix the \"universal link\" cold start issue too. What do you think?\r\n[AC-6397]\r\n[TIMOB-26610]\r\n", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2021-07-29T19:17:25.000+0000", "updated": "2021-07-29T19:17:25.000+0000" }, { "id": "458929", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Yep, that works the same. But instead of using getArguments(), one can listen to the \"continueactivity\" event instead (like we do) that solves those as well", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2021-07-29T20:08:15.000+0000", "updated": "2021-07-29T20:08:15.000+0000" }, { "id": "458936", "author": { "name": "jasonkneen", "key": "jasonkneen", "displayName": "Jason Kneen", "active": true, "timeZone": "Europe/London" }, "body": "Great job Hans -- all works as expected now and iOS users can have a full app clip experience!", "updateAuthor": { "name": "jasonkneen", "key": "jasonkneen", "displayName": "Jason Kneen", "active": true, "timeZone": "Europe/London" }, "created": "2021-07-30T11:10:49.000+0000", "updated": "2021-07-30T11:10:49.000+0000" }, { "id": "458956", "author": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "body": "Merged to master and 10_0_X", "updateAuthor": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "created": "2021-08-05T13:59:19.000+0000", "updated": "2021-08-05T13:59:19.000+0000" } ], "maxResults": 8, "total": 8, "startAt": 0 } } }