{ "id": "164197", "key": "TIMOB-24072", "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": "16980", "description": "New V8", "name": "Release 6.0.0", "archived": false, "released": true, "releaseDate": "2016-11-15" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2016-11-04T02:51:43.000+0000", "created": "2016-10-25T18:42:20.000+0000", "priority": { "name": "High", "id": "2" }, "labels": [ "qe-6.0.0" ], "versions": [ { "id": "16980", "description": "New V8", "name": "Release 6.0.0", "archived": false, "released": true, "releaseDate": "2016-11-15" } ], "issuelinks": [], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2016-11-09T22:18:30.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": "When building a Classic project, I always see {{[INFO] Invoking xcodebuild}} during the build, even when performing a subsequent build with no changes. The reason appears to be:\r\n{{[INFO] Forcing rebuild: image was updated, recompiling asset catalog}}\r\n\r\nI also see that many files that should be skipped are getting copied/overwritten:\r\n{code}\r\n[TRACE] No change, skipping /Users/Eric/Documents/Appcelerator_Studio_Workspace/diffClassic/build/iphone/Assets.xcassets/f58b0d04f3ad524648680e9940fb4e77323cb9bb.imageset/tab1.png\r\n[DEBUG] Overwriting /Users/Eric/Documents/Appcelerator_Studio_Workspace/diffClassic/Resources/assets/images/tab1.png => /Users/Eric/Documents/Appcelerator_Studio_Workspace/diffClassic/build/iphone/Assets.xcassets/f58b0d04f3ad524648680e9940fb4e77323cb9bb.imageset/tab1.png\r\n{code}\r\n\r\n*Steps to reproduce issue*\r\n1. Create a new Classic project\r\n2. Build that project for iOS sim\r\n3. Build the project again for the same iOS sim\r\n\r\n*Expected Results*\r\nXcodebuild is skipped as there are no changes to the project\r\n\r\n*Actual Results*\r\nXcodebuild is invoked on each build\r\n\r\n*Notes*\r\nI am attaching my full build log", "attachment": [ { "id": "60605", "filename": "diffbuild log.txt", "author": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-10-25T18:41:45.000+0000", "size": 280163, "mimeType": "text/plain" } ], "flagged": false, "summary": "iOS: Classic projects always invoke xcodebuild; Differential builds", "creator": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "environment": "MacOS 10.12 (16A323)\r\nStudio 4.8.0.201610171310\r\nTi SDK 6.0.0.v20161024184632\r\nAppc NPM 4.2.8-9\r\nAppc CLI 6.0.0-64\r\nAlloy 1.9.3\r\nXcode 8.0 (8A218a)", "closedSprints": [ { "id": 745, "state": "closed", "name": "2016 Sprint 22 Tooling", "startDate": "2016-10-22T00:19:59.632Z", "endDate": "2016-11-05T00:19:00.000Z", "completeDate": "2016-11-07T04:39:49.512Z", "originBoardId": 199 } ], "comment": { "comments": [ { "id": "399833", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Is there a difference when you toggle in tiapp.xml? [~ewieber]", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-10-26T02:14:06.000+0000", "updated": "2016-10-26T02:14:17.000+0000" }, { "id": "399834", "author": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~cng], for the most part, yes. I changed app-thinning to false, saved, and built the app multiple times. The first two builds were the same and invoked xcodebuild (I would expect this with the first build after changing the tiapp, but not the second), however every build after that has skipped xcodebuild correctly. Cleaning and rebuilding caused xcodebuild to be invoked at the correct times.\r\nI still see \"skipped\" files being copied and overwritten, though.", "updateAuthor": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-10-26T02:26:32.000+0000", "updated": "2016-10-26T02:26:32.000+0000" }, { "id": "400062", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "When using the app-thinning, we generate the asset-catalog / Contents.json on [every build|https://github.com/appcelerator/titanium_mobile/blob/master/iphone/cli/commands/_build.js#L5445]. So couldn't we just compare the existing asset catalog with the one what wants to be written and skip the writing if they already match?", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-10-29T14:01:18.000+0000", "updated": "2016-10-29T14:02:00.000+0000" }, { "id": "400357", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "tisdk master PR: https://github.com/appcelerator/titanium_mobile/pull/8581\r\ntisdk 6_0_X PR: https://github.com/appcelerator/titanium_mobile/pull/8582", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2016-11-03T19:06:04.000+0000", "updated": "2016-11-03T23:24:55.000+0000" }, { "id": "400376", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "CR AND FT PASSED. PRs merged.", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-11-04T02:51:33.000+0000", "updated": "2016-11-04T02:51:33.000+0000" }, { "id": "400675", "author": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Verified fixed, using:\r\nMacOS 10.12 (16A323)\r\nStudio 4.8.0.201611020954\r\nTi SDK 6.0.0.v20161109075403\r\nAppc NPM 4.2.8-9\r\nAppc CLI 6.0.0-69\r\nAlloy 1.9.4\r\nXcode 8.1 (8B62)\r\n\r\nSkipped files are no longer overwritten and xodebuild can be correctly skipped. Tested by creating a new Classic app, building it for iOS sim, then building it several more times for the same iOS sim, with no changes to the project.", "updateAuthor": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-11-09T22:18:30.000+0000", "updated": "2016-11-09T22:18:30.000+0000" } ], "maxResults": 6, "total": 6, "startAt": 0 } } }