{ "id": "176238", "key": "TIMOB-28491", "fields": { "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "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": "21199", "description": "", "name": "Release 10.0.1", "archived": false, "released": true, "releaseDate": "2021-07-28" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2021-06-22T15:30:32.000+0000", "created": "2021-06-12T16:01:16.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [], "versions": [], "issuelinks": [ { "id": "59293", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "175359", "key": "TIMOB-28037", "fields": { "summary": "iOS: Relative path require not working with node_modules", "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": "Medium", "id": "3" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } } ], "assignee": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2021-06-22T15:30:32.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": "It seems like the iOS setters in modules are not called correctly anymore. I remember I brought this up a few months ago, but it actually seems like it made it into the 10.0.0.GA as well, breaking basically all modules that have properties like this (ti.facebook example):\r\n\r\n{code:objc}\r\n- (void)setPermissions:(NSArray *_Nullable)permissions\r\n{\r\n _permissions = permissions;\r\n}\r\n{code}\r\n\r\nThe setter is only triggered if called via {{facebook.setPermissions(['email])}}, the prior (and better) way, {{facebook.permissions = ['email']}} does not work anymore, so Facebooks logins don't include the permission anymore and therefore fail.\r\n", "attachment": [], "flagged": false, "summary": "iOS: Setter not called properly anymore", "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": null, "comment": { "comments": [ { "id": "458773", "author": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "body": "[~hknoechel], I'm trying to see if there's some context from the previous ticket but I can't seem to find it (closest I could find is TIMOB-28415)\r\n\r\n[~cwilliams], [~jvennemann], I'm not familiar with this. Is it this an unfortunate consequence of the automatic setters removal where we're no longer generating the property here? Is there some form of compatibility we could add to handle this?", "updateAuthor": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "created": "2021-06-15T10:59:23.000+0000", "updated": "2021-06-15T10:59:23.000+0000" }, { "id": "458774", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "I mean, the setters are fine to be removed. But I was not sure why it can't even be accessed via the set-property anymore. Titanium always used the \"setXXX\" in native code to handle both setter and set-properties, so maybe a bit too much was removed. On the other hand, it seems like the SDK itself is not affected by this.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2021-06-15T11:03:07.000+0000", "updated": "2021-06-15T11:03:07.000+0000" }, { "id": "458788", "author": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "body": "Long story short, when I tried to unify the underlying require implementations between iOS/Android, this bug came about. Native modules got wrapped in a \"wrapper\" object that forwarded method invocations. This is necessary for shuttling around \"scope variables\" to Android proxies - primary the {{sourceURL}} used to resolve relative paths (relative to the proxy creation file). Looks like this wrapper object is unnecessary for iOS and inadvertently causes this bug. I believe [~jvennemann] is going to basically just skip the wrapping on iOS.", "updateAuthor": { "name": "cwilliams", "key": "cwilliams", "displayName": "Christopher Williams", "active": true, "timeZone": "America/New_York" }, "created": "2021-06-16T15:47:29.000+0000", "updated": "2021-06-16T15:47:29.000+0000" }, { "id": "458791", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "Thanks for the explanation [~cwilliams]. Yep, that's basically what i did ;)\r\n\r\nPR: https://github.com/appcelerator/titanium_mobile/pull/12900", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2021-06-16T21:14:34.000+0000", "updated": "2021-06-16T21:14:34.000+0000" }, { "id": "458806", "author": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "body": "master and 10_0_X backport merged", "updateAuthor": { "name": "eharris", "key": "eharris", "displayName": "Ewan Harris", "active": true, "timeZone": "Europe/Dublin" }, "created": "2021-06-22T15:30:28.000+0000", "updated": "2021-06-22T15:30:28.000+0000" } ], "maxResults": 5, "total": 5, "startAt": 0 } } }