{ "id": "151340", "key": "TIMOB-19554", "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": "14826", "description": "Release 5.1.0-remaining iOS9 features, Android M features", "name": "Release 5.1.0", "archived": false, "released": true, "releaseDate": "2015-11-20" }, { "id": "16778", "description": "Release 5.0.1", "name": "Release 5.0.1", "archived": false, "released": true, "releaseDate": "2015-09-25" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2015-09-21T06:11:44.000+0000", "created": "2015-09-21T04:59:40.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [], "versions": [ { "id": "16925", "description": "WatchKit Support--all going into 5.0 now", "name": "Release 5.0.0", "archived": true, "released": true, "releaseDate": "2015-09-16" } ], "issuelinks": [], "assignee": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "updated": "2015-09-22T17:36:53.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" }, { "id": "10207", "name": "Tooling" } ], "description": "If you have a .png image in your Resources dir that is actually a .gif but with the wrong extension, pngcrush will blow up and the build will fail.\r\n\r\nDepending on your luck, you will either get no error or a file rename error. pngcrush returns 0 if crushing fails, which is probably a bug with pngcrush (or at least the one shipped with Xcode 7). The rename error happens because pngcrush take the input file and writes the crushed png to another file and the iOS build needs to rename it back to the correct filename. If the temporary crushed png image was never generated, then there's nothing to rename and then it blows up.\r\n\r\nIt's worth noting that in Titanium SDK 4.x and older, the iOS build called {{/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/iphoneos-optimize}}. This is a perl script that converts plists into binary format and crushes pngs. The problem with this script is if pngcrush fails, it aborts the entire script and returns 0. This is bad. A) this potentially does not optimize several unprocessed PNG images and B) doesn't return an error code. So, this image optimization has been silently failing for years.", "attachment": [], "flagged": false, "summary": "iOS: pngcrush fails build when crushing an invalid png image", "creator": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "subtasks": [], "reporter": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "environment": null, "closedSprints": [ { "id": 495, "state": "closed", "name": "2015 Sprint 19 Tooling", "startDate": "2015-09-14T16:11:58.378Z", "endDate": "2015-09-26T01:11:00.000Z", "completeDate": "2015-09-28T18:59:46.802Z", "originBoardId": 121 } ], "comment": { "comments": [ { "id": "364424", "author": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "body": "Master PR: https://github.com/appcelerator/titanium_mobile/pull/7213\r\n5_0_X PR: https://github.com/appcelerator/titanium_mobile/pull/7214", "updateAuthor": { "name": "cbarber", "key": "cbarber", "displayName": "Chris Barber", "active": true, "timeZone": "America/Chicago" }, "created": "2015-09-21T05:02:19.000+0000", "updated": "2015-09-21T05:02:19.000+0000" }, { "id": "364430", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "APPROVED. PRs merged.", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-09-21T06:11:33.000+0000", "updated": "2015-09-21T06:11:33.000+0000" }, { "id": "364673", "author": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Verified fixed, using:\r\n\r\nMacOS 10.11 (15A279b)\r\nStudio 4.3.0.201509151348\r\nTi SDK 5.0.1.v20150922062312\r\nAppc NPM 4.2.0\r\nAppc CLI 5.0.1-5\r\nTi CLI 5.0.3\r\nAlloy 1.7.8\r\nArrow 1.2.62\r\nXcode 7.0 (7A218)\r\nNode v0.10.37\r\nJava 1.7.0_45\r\npreproduction\r\n\r\nAfter several builds of varying target and cleanliness, this error was not encountered with Alloy or Classic projects.", "updateAuthor": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2015-09-22T17:36:53.000+0000", "updated": "2015-09-22T17:36:53.000+0000" } ], "maxResults": 3, "total": 3, "startAt": 0 } } }