{ "id": "165833", "key": "TIMOB-24384", "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": "11", "description": "Is not a bug in our product", "name": "Not Our Bug" }, "resolutiondate": "2017-11-29T14:59:36.000+0000", "created": "2017-02-08T08:36:58.000+0000", "priority": { "name": "Medium", "id": "3" }, "labels": [], "versions": [], "issuelinks": [], "assignee": null, "updated": "2018-08-06T17:52:08.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": [], "description": "Ok, here is the use-case: Someone plays around with Cocoapods, adds the required dependencies after each other. After adding the first one, the app is ran, then the second Pod is added, the app wants to start again. The build fails due to classes not being found:\r\n{code}\r\n[DEBUG] Overwriting /Users/hknoechel/Documents/Apps/fbtest/Resources/app.js => /Users/hknoechel/Documents/Apps/fbtest/build/iphone/build/Products/Debug-iphonesimulator/fbtest.app/app.js\r\n\r\n/Users/hknoechel/Documents/Apps/fbtest/plugins/hyperloop/2.0.1/hooks/ios/hyperloop.js:428\r\n\t\t\t\t\t\tthrow new Error('The iOS class \"' + className + '\" could not be found in the framework \"' + pkg + '\". Are you trying to use \"' + frameworkName + '\" instead? (' + relPath+ ')');\r\n ^\r\nError: The iOS class \"FBSDKMessageDialog\" could not be found in the framework \"FBSDKMessengerShareKit\". Are you trying to use \"FBSDKCoreKit\" instead? (../build/iphone/build/Products/Debug-iphonesimulator/fbtest.app/app.js)\r\n at HyperloopiOSBuilder. (/Users/hknoechel/Documents/Apps/fbtest/plugins/hyperloop/2.0.1/hooks/ios/hyperloop.js:428:13)\r\n at Array.forEach (native)\r\n at HyperloopiOSBuilder. (/Users/hknoechel/Documents/Apps/fbtest/plugins/hyperloop/2.0.1/hooks/ios/hyperloop.js:422:34)\r\n at String.replace (native)\r\n at HyperloopiOSBuilder.patchJSFile (/Users/hknoechel/Documents/Apps/fbtest/plugins/hyperloop/2.0.1/hooks/ios/hyperloop.js:380:67)\r\n at HyperloopiOSBuilder.copyResource (/Users/hknoechel/Documents/Apps/fbtest/plugins/hyperloop/2.0.1/hooks/ios/hyperloop.js:86:7)\r\n at /usr/local/lib/node_modules/titanium/lib/hook.js:235:13\r\n at /usr/local/lib/node_modules/titanium/node_modules/async/lib/async.js:689:13\r\n at iterate (/usr/local/lib/node_modules/titanium/node_modules/async/lib/async.js:265:13)\r\n at async.forEachOfSeries.async.eachOfSeries (/usr/local/lib/node_modules/titanium/node_modules/async/lib/async.js:284:9)\r\n---------------------------------------------\r\n at iOSBuilder. (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/iphone/cli/commands/_build.js:5618:5)\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/async/dist/async.js:3047:20\r\n at replenish (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/async/dist/async.js:884:21)\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/async/dist/async.js:888:13\r\n at eachLimit$1 (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/async/dist/async.js:3136:26)\r\n at Object. (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/async/dist/async.js:920:20)\r\n at iOSBuilder.processJSFiles (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/iphone/cli/commands/_build.js:5617:10)\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:718:13\r\n at Immediate.iterate (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:262:13)\r\n---------------------------------------------\r\n at Object.setImmediate (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:194:9)\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:272:35\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:44:16\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:723:17\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:167:37\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/lib/async.js:64:51\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:718:13\r\n at Immediate.iterate (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:262:13)\r\n---------------------------------------------\r\n at Object.setImmediate (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:194:9)\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:272:35\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:44:16\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:723:17\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:167:37\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/lib/async.js:64:51\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:718:13\r\n at Immediate.iterate (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:262:13)\r\n---------------------------------------------\r\n at Object.setImmediate (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:194:9)\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:272:35\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:44:16\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:723:17\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:167:37\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/lib/async.js:64:51\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:718:13\r\n at Immediate.iterate (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:262:13)\r\n---------------------------------------------\r\n at Object.setImmediate (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:194:9)\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:272:35\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:44:16\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:723:17\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:167:37\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/lib/async.js:64:51\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:718:13\r\n at iterate (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:262:13)\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:274:29\r\n---------------------------------------------\r\n at Object.setImmediate (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:194:9)\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:272:35\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:44:16\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:723:17\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:167:37\r\n at iOSBuilder. (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/iphone/cli/commands/_build.js:5097:6)\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:718:13\r\n at iterate (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:262:13)\r\n at async.forEachOfSeries.async.eachOfSeries (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:281:9)\r\n---------------------------------------------\r\n at Object.setImmediate (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:194:9)\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:272:35\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:44:16\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:723:17\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:167:37\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/lib/async.js:64:51\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:718:13\r\n at iterate (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:262:13)\r\n at async.forEachOfSeries.async.eachOfSeries (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:281:9)\r\n---------------------------------------------\r\n at Object.setImmediate (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:194:9)\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:272:35\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:44:16\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:723:17\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:167:37\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/lib/async.js:64:51\r\n at /Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:718:13\r\n at Immediate.iterate (/Users/hknoechel/Library/Application Support/Titanium/mobilesdk/osx/6.0.1.GA/node_modules/node-appc/node_modules/async/lib/async.js:262:13)\r\n{code}\r\n\r\nPodfile (before):\r\n{code:ruby}\r\ninstall! 'cocoapods',\r\n :integrate_targets => false\r\n\r\nplatform :ios, '9.0'\r\ntarget 'fbtest' do\r\n\tpod 'FBSDKCoreKit'\r\n#\tpod 'FBSDKShareKit'\r\n#\tpod 'FBSDKMessengerShareKit'\r\nend\r\n{code}\r\n\r\nPodfile (after):\r\n{code:ruby}\r\ninstall! 'cocoapods',\r\n :integrate_targets => false\r\n\r\nplatform :ios, '9.0'\r\ntarget 'fbtest' do\r\n\tpod 'FBSDKCoreKit'\r\n\tpod 'FBSDKShareKit'\r\n\tpod 'FBSDKMessengerShareKit'\r\nend\r\n{code}\r\n\r\nProposals:\r\n- Watch the Podfile and force a clean build if it's changed. The Cocoapods post-install hooks do the same with native projects\r\n- Validate that this also works for LiveView projects (when the reload blocker is resolved). Just so we don't forget it.\r\n\r\nThe workaround is very simple, so it's no high prio issue: Clean the project and run it again -> Works!", "attachment": [], "flagged": false, "summary": "Hyperloop: iOS - Build should detect Podfile changes and do a clean build", "creator": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "subtasks": [], "reporter": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "environment": null, "closedSprints": [ { "id": 975, "state": "closed", "name": "2017 Sprint 24 SDK", "startDate": "2017-11-19T18:59:24.352Z", "endDate": "2017-12-03T18:59:00.000Z", "completeDate": "2017-12-04T23:20:14.151Z", "originBoardId": 114 } ], "comment": { "comments": [ { "id": "406569", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Might be invalid. I tried to access a class from the wrong framework. Will keep until until re-validated.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-02-08T08:41:44.000+0000", "updated": "2017-02-08T08:41:44.000+0000" }, { "id": "431455", "author": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "body": "Not an issue anymore, resolving.", "updateAuthor": { "name": "hknoechel", "key": "hansknoechel", "displayName": "Hans Knöchel", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-11-29T14:59:36.000+0000", "updated": "2017-11-29T14:59:36.000+0000" }, { "id": "440292", "author": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "body": "Closing as \"not our bug\". If you disagree, please reopen.", "updateAuthor": { "name": "emerriman", "key": "emerriman", "displayName": "Eric Merriman ", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2018-08-06T17:52:08.000+0000", "updated": "2018-08-06T17:52:08.000+0000" } ], "maxResults": 3, "total": 3, "startAt": 0 } } }