{ "id": "100518", "key": "TIMOB-10787", "fields": { "issuetype": { "id": "2", "description": "A new feature of the product, which has yet to be developed.", "name": "New Feature", "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": "17609", "description": "", "name": "Release 7.0.0", "archived": false, "released": true, "releaseDate": "2017-12-07" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2017-11-13T19:13:43.000+0000", "created": "2012-09-05T15:53:33.000+0000", "priority": { "name": "Low", "id": "4" }, "labels": [], "versions": [ { "id": "13505", "description": "Release 3.0.0", "name": "Release 3.0.0", "archived": true, "released": true, "releaseDate": "2012-12-14" } ], "issuelinks": [], "assignee": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2017-11-13T23:19:35.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": "[[UIDevice currentDevice] identifierForVendor]:\r\n * ID that is identical between apps from the same developer\r\n * Erased with removal of the last app for that Team ID\r\n * Backed up\r\n\r\n\r\n[[UIDevice currentDevice] identifierForAdvertising]\r\n * Unique to the device\r\n * Available to all applications • Used for advertising\r\n * iAd has converted from UDID for iOS 6 and later\r\n * Reset with Erase All Content & Settings\r\n * Backed up", "attachment": [], "flagged": false, "summary": "iOS: Expose UDID replacements available in iOS6", "creator": { "name": "mstepanov", "key": "mstepanov", "displayName": "Max Stepanov", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "mstepanov", "key": "mstepanov", "displayName": "Max Stepanov", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "249120", "author": { "name": "cbeloch", "key": "cbeloch", "displayName": "Christopher Beloch", "active": true, "timeZone": "Europe/Berlin" }, "body": "Can you please implement this as a replacement for Ti.Platform.id ?\r\nJust \"identifierForVendor\" as the Advertising isn't allowed in apps...", "updateAuthor": { "name": "cbeloch", "key": "cbeloch", "displayName": "Christopher Beloch", "active": true, "timeZone": "Europe/Berlin" }, "created": "2013-04-26T12:46:53.000+0000", "updated": "2013-04-26T12:46:53.000+0000" }, { "id": "417131", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR: https://github.com/appcelerator/titanium_mobile/pull/8953", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-04-10T18:20:08.000+0000", "updated": "2017-04-10T18:20:08.000+0000" }, { "id": "417133", "author": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "body": "@Hans if we are fetching the identifierForAdvertising for iOS, can't we also map the isAdvertisingTrackingEnabled so we can check it before fetching the identifierForAdvertising according to Apple Guidelines in order to avoid rejections?\r\n\r\nI have mapped it on one of my modules that fetches the advertising Ids. Check it here https://github.com/pinio/tiads/blob/master/ios/Classes/NinjaYgorTiadsModule.m#L81\r\n\r\nAlso, can we have parity for Android? I'd suggest that for android, we map the AdvertisingIdClient.getAdvertisingIdInfo and Secure.ANDROID_ID for the \"vendorIdentifier\". Also did it on my module in here: https://github.com/pinio/tiads/blob/master/android/src/ninja/ygor/tiads/TiAdsModule.java\r\n\r\nIt would be awesome if we could access all those Ids directly on from Ti core sdk without modules.", "updateAuthor": { "name": "ygbr", "key": "ygbr", "displayName": "Ygor Lemos", "active": true, "timeZone": "America/Sao_Paulo" }, "created": "2017-04-10T18:27:43.000+0000", "updated": "2017-04-10T18:27:43.000+0000" }, { "id": "424461", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~ygbr] Totally agree! I will add {{isAdvertisingTrackingEnabled}}, can you do the Android parity? Otherwise we probably would put the PR on hold until we have the Android resources for this feature (as the Android team has bigger priorities right now).", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-07-20T18:10:18.000+0000", "updated": "2017-07-20T18:10:18.000+0000" }, { "id": "430389", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Test-case:\r\n{code:js}\r\nvar win = Ti.UI.createWindow({\r\n backgroundColor: '#fff'\r\n});\r\n\r\nvar btn = Ti.UI.createButton({\r\n title: 'Trigger'\r\n});\r\n\r\nbtn.addEventListener('click', function() {\r\n Ti.API.info('identifierForVendor');\r\n Ti.API.info(Ti.Platform.identifierForVendor);\r\n Ti.API.info(Ti.Platform.getIdentifierForVendor());\r\n\r\n Ti.API.info('identifierForAdvertising');\r\n Ti.API.info(Ti.Platform.identifierForAdvertising);\r\n Ti.API.info(Ti.Platform.getIdentifierForAdvertising());\r\n\r\n Ti.API.info('isAdvertisingTrackingEnabled');\r\n Ti.API.info(Ti.Platform.isAdvertisingTrackingEnabled);\r\n});\r\n\r\nwin.add(btn);\r\nwin.open();\r\n{code}", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-11-10T15:15:43.000+0000", "updated": "2017-11-10T15:15:43.000+0000" }, { "id": "430556", "author": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Verified in SDK build 7.0.0.v20171113145138", "updateAuthor": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-11-13T23:19:35.000+0000", "updated": "2017-11-13T23:19:35.000+0000" } ], "maxResults": 6, "total": 6, "startAt": 0 } } }