{ "id": "173967", "key": "AC-6328", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "12217", "key": "AC", "name": "Appcelerator - INBOX", "projectCategory": { "id": "10000", "description": "", "name": "Customer Service" } }, "resolution": { "id": "10000", "description": "", "name": "Done" }, "resolutiondate": "2019-08-23T16:43:38.000+0000", "created": "2019-08-01T07:37:48.000+0000", "labels": [ "android", "manifest", "permissions" ], "versions": [], "issuelinks": [ { "id": "57798", "type": { "id": "10003", "name": "Relates", "inward": "relates to", "outward": "relates to" }, "outwardIssue": { "id": "173973", "key": "TIMOB-27304", "fields": { "summary": "Android: Setting required \"true\" in \"tiapp.xml\" should override \"false\" setting in libraries", "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": "shossain", "key": "shossain", "displayName": "Shak Hossain", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2019-08-23T16:43:38.000+0000", "status": { "description": "A resolution has been taken, and it is awaiting verification by reporter. From here issues are either reopened, or are closed.", "name": "Resolved", "id": "5", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [ { "id": "14548", "name": "Titanium SDK & CLI", "description": "Please enter tickets related to the MobileSDK here." } ], "description": "Hi guys, I have setted \"\" in the manifest but after uptate to SDK 8.0.2 (again this madness) Google Play store return that is required anyone have experienced the same problem?\r\n\r\nAnother guy on slack got the same problem:\r\nI’m having the same problem since 8.0.2.GA as well - with quite a few hardware features (including android.hardware.touchscreen, android.hardware.bluetooth, android.hardware.nfc, android.hardware.screen.portrait, …). I’ve forced all to false in TiApp.xml, I’ve tried creating a custom AndroidMainfest.xml, I’ve tried several things but they all are forced to required=“true” which eliminates about 95% of devices from compatibility when I try to upload to the Play store. If I go back to a pre-8.0 SDK then all is fine again…", "attachment": [], "flagged": false, "summary": "Cannot set required false to uses-feature in SDK 8", "creator": { "name": "Pietro", "key": "pietro", "displayName": "Pietro Granati", "active": true, "timeZone": "Europe/Rome" }, "subtasks": [], "reporter": { "name": "Pietro", "key": "pietro", "displayName": "Pietro Granati", "active": true, "timeZone": "Europe/Rome" }, "environment": "Mac OSX", "comment": { "comments": [ { "id": "450208", "author": { "name": "topener", "key": "topener", "displayName": "Rene Pot", "active": true, "timeZone": "Europe/Berlin" }, "body": "Hi! Have you checked all {{timodule.xml}} files in all modules to verify there isn't a {{required=\"true\"}} setting there?\r\n\r\nI tried to reproduce and I can only reproduce if I don't touch timodule. All {{timodule.xml}} files override any setting in tiapp.xml.\r\n\r\nI've used SDK 8.0.2.GA and the latest RC release of the CLI (7.1.0-24)", "updateAuthor": { "name": "topener", "key": "topener", "displayName": "Rene Pot", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-08-01T07:54:03.000+0000", "updated": "2019-08-01T07:56:29.000+0000" }, { "id": "450209", "author": { "name": "Pietro", "key": "pietro", "displayName": "Pietro Granati", "active": true, "timeZone": "Europe/Rome" }, "body": "No, because in SDK 7.5.1 all works fine so it makes no sense to me", "updateAuthor": { "name": "Pietro", "key": "pietro", "displayName": "Pietro Granati", "active": true, "timeZone": "Europe/Rome" }, "created": "2019-08-01T07:56:25.000+0000", "updated": "2019-08-01T07:56:25.000+0000" }, { "id": "450213", "author": { "name": "topener", "key": "topener", "displayName": "Rene Pot", "active": true, "timeZone": "Europe/Berlin" }, "body": "Can you check them? The ti.nfc module overrides it on its own for certain (I just confirmed that) so perhaps logic changed or the file was reset somehow. ", "updateAuthor": { "name": "topener", "key": "topener", "displayName": "Rene Pot", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-08-01T11:14:32.000+0000", "updated": "2019-08-01T11:14:32.000+0000" }, { "id": "450235", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "How Titanium was merging the module's and your app's {{}} XML setting before was wrong and what it is doing now is correct. (One man's bug is another man's feature apparently.)\r\n\r\nHave a look at Google's docs on how the \"AndroidManifest.xml\" file are supposed to be merged below.\r\nhttps://developer.android.com/studio/build/manifest-merge\r\n\r\nHere is a quick copy-and-paste from the above link for your convenience...\r\nbq. The android:required attribute in the and elements use an OR merge, such that if there is a conflict, \"true\" is applied and the feature or library required by one manifest is always included.\r\n\r\nThe issue is that the \"ti.nfc\" module set \"required\" to {{true}}, which means its setting wins.\r\nhttps://github.com/appcelerator-modules/ti.nfc/blob/master/android/timodule.xml\r\n\r\nPersonally, I don't think the \"ti.nfc\" module should be setting this {{}} at all and its the module that needs to be changed. In your case, I recommend that you change the installed \"ti.nfc\" module's \"timodule.xml\" mentioned above and remove its {{}}. On Mac, this module will be installed under the following directory by default...\r\n{code}\r\n~/Library/Application Support/Titanium/modules/android/ti.nfc\r\n{code}\r\n\r\nI hope this helps.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-08-02T04:00:07.000+0000", "updated": "2019-08-02T04:01:06.000+0000" }, { "id": "450236", "author": { "name": "Pietro", "key": "pietro", "displayName": "Pietro Granati", "active": true, "timeZone": "Europe/Rome" }, "body": "Thank you all and yeah \"One man's bug is another man's feature apparently\".\r\nI'm finishing another project now but next week I'll give it a try, but on google forums I read another thing that with a string you can override the uses-feature:\r\n\r\nbut it didn't work", "updateAuthor": { "name": "topener", "key": "topener", "displayName": "Rene Pot", "active": true, "timeZone": "Europe/Berlin" }, "created": "2019-08-02T07:16:15.000+0000", "updated": "2019-08-05T08:15:08.000+0000" }, { "id": "450241", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Unfortunately, Titanium's build tool does not support the \"tools:*\" attributes in \"tiapp.xml\" or \"timodule.xml\" since we generate the \"AndroidManifest.xml\" ourselves from those files. But that is definitely something we should consider supporting in the future. Thanks for bringing this up.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-08-02T17:56:56.000+0000", "updated": "2019-08-02T17:56:56.000+0000" }, { "id": "450251", "author": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I think the {{}} merge can be further improved. Setting it to {{true}} in \"tiapp.xml\" is not overriding a library's {{false}} setting, which is not good. And I agree that having {{tools:replace=\"android:require\"}} support would be helpful.\r\n\r\nI've written up new ticket [TIMOB-27304] to do the above. You may want to keep watch on it. We'll see about doing this in Titanium 8.1.1.\r\n\r\nIn the meantime, deleting the \"timodule.xml\" file's {{}} is the way to go for now. Doing that means your \"tiapp.xml\" settings will always win.", "updateAuthor": { "name": "jquick", "key": "jquick", "displayName": "Joshua Quick", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2019-08-03T01:24:19.000+0000", "updated": "2019-08-03T01:24:19.000+0000" }, { "id": "450270", "author": { "name": "Pietro", "key": "pietro", "displayName": "Pietro Granati", "active": true, "timeZone": "Europe/Rome" }, "body": "Hi guys, I've tested what Joshua said and it works.\r\nNow I've lost only 200 devices but it's for the API version not supported and it's normal\r\nThank you", "updateAuthor": { "name": "Pietro", "key": "pietro", "displayName": "Pietro Granati", "active": true, "timeZone": "Europe/Rome" }, "created": "2019-08-05T12:24:55.000+0000", "updated": "2019-08-05T12:24:55.000+0000" } ], "maxResults": 8, "total": 8, "startAt": 0 } } }