{ "id": "141435", "key": "TIMOB-18176", "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": [], "resolution": { "id": "3", "description": "The problem is a duplicate of an existing issue.", "name": "Duplicate" }, "resolutiondate": "2015-09-04T07:22:04.000+0000", "created": "2014-12-10T23:27:33.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [], "versions": [], "issuelinks": [ { "id": "44093", "type": { "id": "10122", "name": "Gantt: start-finish", "inward": "is triggered by", "outward": "is triggering" }, "outwardIssue": { "id": "141547", "key": "TIMOB-18196", "fields": { "summary": "iOS: add architecture to module not found message", "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": "High", "id": "2" }, "issuetype": { "id": "4", "description": "An improvement or enhancement to an existing feature or task.", "name": "Improvement", "subtask": false } } } }, { "id": "44014", "type": { "id": "10122", "name": "Gantt: start-finish", "inward": "is triggered by", "outward": "is triggering" }, "inwardIssue": { "id": "141340", "key": "TIMOB-18168", "fields": { "summary": "iOS: Module - Cannot build 32-bit module urlSession and coremotion with SDK 3.5.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": "High", "id": "2" }, "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false } } } }, { "id": "44015", "type": { "id": "10122", "name": "Gantt: start-finish", "inward": "is triggered by", "outward": "is triggering" }, "inwardIssue": { "id": "141345", "key": "TIMOB-18169", "fields": { "summary": "iOS: Module - Cannot find some 32-bit modules if you launch an ad hoc packaged app", "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": "jalter", "key": "jalter", "displayName": "Jon Alter", "active": true, "timeZone": "America/Los_Angeles" }, "updated": "2017-03-22T22:12:15.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": "10202", "name": "Android", "description": "Android Platform" }, { "id": "13103", "name": "CLI", "description": "Node-based command line interface" }, { "id": "10206", "name": "iOS", "description": "iOS Platform" } ], "description": "TIMOB-18065 architectures are now included in module manifests\r\n\r\nThe CLI should check the architectures available in each modules that is included in the app and fail with a helpful error when one or more of the modules do not have the architectures the app is being built for. \r\n\r\nIt would be most useful to fail with a list of modules that failed an what architectures they are missing rather than failing the build when the first mismatch is encountered.", "attachment": [ { "id": "53169", "filename": "TIMOB18176.zip", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2014-12-11T23:01:33.000+0000", "size": 7284996, "mimeType": "application/zip" } ], "flagged": false, "summary": "CLI: Fail app build if target architectures do not exist in the manifest of every module", "creator": { "name": "jalter", "key": "jalter", "displayName": "Jon Alter", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "jalter", "key": "jalter", "displayName": "Jon Alter", "active": true, "timeZone": "America/Los_Angeles" }, "environment": null, "comment": { "comments": [ { "id": "336028", "author": { "name": "jalter", "key": "jalter", "displayName": "Jon Alter", "active": true, "timeZone": "America/Los_Angeles" }, "body": "I like option 1. I see no problem with people disabling this check on purpose, and don't see them inadvertently disabling it unless they are messing with the sdk.\r\n\r\n[~ingo] also likes option 1 based on the info we have at this point.\r\n", "updateAuthor": { "name": "jalter", "key": "jalter", "displayName": "Jon Alter", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-12-11T18:18:57.000+0000", "updated": "2014-12-11T18:19:33.000+0000" }, { "id": "336080", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "Attached project contains a hook that checks the module architectures and fails the build if:\r\n\r\n* you're using a 3.5+ version of the CLI\r\n* you're building to a 3.5+ version of the SDK\r\n* you're building for iOS\r\n* and any local or global projects used in the app either don't have an 'architectures' entry in their manifest or don't have x86_64 or arm64 in that list of architectures\r\n\r\n(this same hook could be made into a global, ie. installed with the rest of the CLI. included here as a project-level hook just for demo purposes)", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2014-12-11T23:01:33.000+0000", "updated": "2014-12-11T23:02:15.000+0000" }, { "id": "336200", "author": { "name": "jalter", "key": "jalter", "displayName": "Jon Alter", "active": true, "timeZone": "America/Los_Angeles" }, "body": "h6. PRs\r\nmaster: https://github.com/appcelerator/titanium_mobile/pull/6475\r\n3_5_X: https://github.com/appcelerator/titanium_mobile/pull/6476\r\n\r\nh6. Test case:\r\n# Add the ios ti.map module v2.0.6 (Does not have 64bit slice) to the tiapp.xml\r\n# Run the code below\r\n# Tap on the window and the error message displayed should include the architecture that is missing from the module (x86_64 or arm64)\r\n\r\n{code}\r\nvar win = Ti.UI.createWindow({\r\n backgroundColor: 'blue'\r\n});\r\nwin.open();\r\nwin.addEventListener('click', function(e) {\r\n var Map = require('ti.map');\r\n});\r\n{code}\r\n\r\nh4. Edit: created new ticket for this solution TIMOB-18196", "updateAuthor": { "name": "jalter", "key": "jalter", "displayName": "Jon Alter", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2014-12-12T18:47:58.000+0000", "updated": "2014-12-12T21:10:36.000+0000" }, { "id": "336220", "author": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "body": "I've tested Jon's PR and it works as expected. However, I have a couple of concerns:\r\n\r\n* The red-screen wouldn't appear for me on the simulator because the modules I tested with include the i386 architecture. (So a quick test could make it look like all was well.)\r\n* The error doesn't appear until the module is instantiated in code, which depending on the customer's app might be many screens deep and perhaps overlooked in cursory testing.\r\n\r\n(In a recent client app I helped on, building the app took nearly 5 mins, followed by a 10 min data sync process. The app then had many screens to tap through. As a customer, I'd prefer to be notified before all that if there was a module compatibility problem rather than go through all that to get a red-screen.)\r\n\r\nI prefer a solution that would notify them of problems at the compile stage.\r\n", "updateAuthor": { "name": "skypanther", "key": "skypanther", "displayName": "Tim Poulsen", "active": true, "timeZone": "America/New_York" }, "created": "2014-12-12T19:31:18.000+0000", "updated": "2014-12-12T19:31:18.000+0000" }, { "id": "415095", "author": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket as duplicate and links to the related ticket have been provided above.", "updateAuthor": { "name": "lmorris", "key": "lmorris", "displayName": "Lee Morris", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-03-22T22:12:15.000+0000", "updated": "2017-03-22T22:12:15.000+0000" } ], "maxResults": 8, "total": 8, "startAt": 0 } } }