{ "id": "161891", "key": "TIMOB-23665", "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": "17706", "name": "Release 5.4.0", "archived": false, "released": true, "releaseDate": "2016-08-11" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2016-07-29T22:58:35.000+0000", "created": "2016-07-20T19:12:01.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [], "versions": [], "issuelinks": [], "assignee": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2016-08-01T20:28:54.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": "13715", "name": "Hyperloop", "description": "Hyperloop project" }, { "id": "10206", "name": "iOS", "description": "iOS Platform" }, { "id": "10207", "name": "Tooling" } ], "description": "Creating a new project, enabling Hyperloop and adding a custom class does not work unless a Cocoa Touch framework is also referenced.\r\n\r\nSteps:\r\n* Create new project\r\n* Configure the project for Hyperloop \r\n* Add a custom Obj-C class '{{MyClass}}', declare it in {{appc.js}} and require it in {{index.js}} controller\r\n\r\nResult:\r\n* MyClass metabase JS file is generated\r\n* MyClass is not added to the Xcode project and therefore not compiled\r\n* No build-time error, run time error {{Cannot find class with name: MyClass}}\r\n\r\nI have tracked down the cause: \r\n\r\nCustom classes and frameworks are added to the Xcode project in the plugin {{updateXcodeProject}} function. This function makes this check for content in {{this.nativeModules}}: https://github.com/appcelerator/hyperloop.next/blob/master/iphone/plugin/hyperloop.js#L672. {{this.nativeModules}} is populated here: https://github.com/appcelerator/hyperloop.next/blob/master/iphone/plugin/hyperloop.js#L574.\r\n\r\nI have attached an example project which demonstrates the error.", "attachment": [ { "id": "59841", "filename": "CustomClassTest.zip", "author": { "name": "cbowley", "key": "cbowley", "displayName": "Chris Bowley", "active": true, "timeZone": "Europe/London" }, "created": "2016-07-20T19:11:57.000+0000", "size": 10475506, "mimeType": "application/zip" } ], "flagged": false, "summary": "[Hyperloop] iOS: custom class is not added to Xcode project and compiled if no other frameworks are being used in the project", "creator": { "name": "cbowley", "key": "cbowley", "displayName": "Chris Bowley", "active": true, "timeZone": "Europe/London" }, "subtasks": [], "reporter": { "name": "cbowley", "key": "cbowley", "displayName": "Chris Bowley", "active": true, "timeZone": "Europe/London" }, "environment": "Ti SDK 5.4.0.v20160713141635\r\nHyperloop module 1.2.3", "closedSprints": [ { "id": 681, "state": "closed", "name": "2016 Sprint 15 Tooling", "startDate": "2016-07-16T00:19:13.868Z", "endDate": "2016-07-30T00:19:00.000Z", "completeDate": "2016-08-01T04:41:26.446Z", "originBoardId": 199 } ], "comment": { "comments": [ { "id": "391804", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR: https://github.com/appcelerator/hyperloop.next/pull/43\r\n\r\nThanks [~cbowley] for the detailed description of this issue! Really helped me to jump right in^^ Thanks to your demo project i was able to address a similar issue with swift files. The PR contains fixes for both issues.", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-07-28T08:20:31.000+0000", "updated": "2016-07-28T08:21:36.000+0000" }, { "id": "391939", "author": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "body": "CR and FT passed.\r\n\r\nh4. Steps to test\r\n1. download the sample app\r\n2. configure it accordingly to the correct version of hyperloop\r\n3. *appc run -p ios -l trace*\r\n\r\nh4. Expected result\r\nOn the console, you will see {{[INFO] MyClass.hello(): hello}} and no errors.", "updateAuthor": { "name": "cng", "key": "cng", "displayName": "Chee Kiat Ng", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-07-29T05:55:26.000+0000", "updated": "2016-07-29T05:55:26.000+0000" }, { "id": "392036", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Reopening ticket. I do not see this fix in Ti SDK 5.4.0.v20160727143921. Looks like the fix went only into master branch.", "updateAuthor": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-07-29T21:34:48.000+0000", "updated": "2016-07-29T21:34:57.000+0000" }, { "id": "392043", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~wluu] Just to be ensure: The fix is part of the Hyperloop module, not the core SDK. So you need to replace the Hyperloop version with the latest hyperloop.next build (not in the releases tab, yet). Can you compile the module and test it from there? Otherwise, I would compile it for you on Monday.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2016-07-29T22:15:27.000+0000", "updated": "2016-07-29T22:15:27.000+0000" }, { "id": "392048", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "body": "[~hansknoechel], My bad, misread the PR. But yes, I was able to verify the fix with the latest Hyperloop module 1.2.5. Will resolve ticket again, but won't close until Hyperloop 1.2.5 is released.\r\n\r\nTested on:\r\n\r\nAppc CLI NPM: 4.2.7\r\nAppc CLI Core: 5.4.0-37\r\nArrow: 1.8.2\r\nSDK: 5.4.0.v20160727143921\r\nHyperloop: 1.2.5\r\nNode: v4.4.7\r\nOS: Mac OS X (10.11.6)\r\nXcode: 7.3.1\r\nDevice: iphone 6 simulator (9.3)", "updateAuthor": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-07-29T22:58:20.000+0000", "updated": "2016-07-29T22:58:20.000+0000" }, { "id": "392143", "author": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Closing ticket as fixed. Verified that if I use the attached sample with Hyperloop 1.2.5, then I do not get the runtime error.\r\n\r\nTested on:\r\n\r\nAppc CLI NPM: 4.2.7\r\nAppc CLI Core: 5.4.0-37\r\nArrow: 1.8.2\r\nSDK: 5.4.0.v20160801022303\r\nHyperloop: 1.2.5\r\nNode: v4.4.7\r\nOS: Mac OS X (10.11.6)\r\nXcode: 7.3.1\r\nDevice: iphone 6 plus (9.1)\r\n", "updateAuthor": { "name": "wluu", "key": "wluu", "displayName": "Wilson Luu", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2016-08-01T20:28:00.000+0000", "updated": "2016-08-01T20:28:00.000+0000" } ], "maxResults": 7, "total": 7, "startAt": 0 } } }