{ "id": "170019", "key": "TIMOB-25393", "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": "19906", "description": "", "name": "Release 6.3.0", "archived": false, "released": true, "releaseDate": "2017-11-01" } ], "resolution": { "id": "1", "description": "A fix for this issue is checked into the tree and tested.", "name": "Fixed" }, "resolutiondate": "2017-10-17T06:44:15.000+0000", "created": "2017-10-14T20:40:00.000+0000", "priority": { "name": "Critical", "id": "1" }, "labels": [ "regression" ], "versions": [], "issuelinks": [], "assignee": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "updated": "2017-10-17T16:27:37.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": "We're experimenting with integration of third-party libraries and frameworks with Hyperloop.\r\n\r\nWe added the ContentfulAPI ObjC Framework to the app/platform/ios directory of the hyperloop_examples app. When we built the app with either SDK 6.2.1 or 6.2.2, we get this error late in the build process...\r\n\r\n2017-10-14T20:24:55.215Z | ERROR | An uncaught exception was thrown!\r\n(buildSettings.LD_RUNPATH_SEARCH_PATHS || \"\").replace is not a function\r\n2017-10-14T20:24:55.216Z | ERROR | (buildSettings.LD_RUNPATH_SEARCH_PATHS || \"\").replace is not a function\r\n\r\nWhen we remove the Framework, the build completes successfully. \r\n\r\nI've attached the log. This appears to be either a regression based on comments in other reports that this mechanism worked.\r\n\r\nAlso, parenthetically, and the source of another JIRA report not yet filed - we did attempt to use the Contentful Pod and that also resulted in build errors. So at this point we're shall we say \"stymied\" with respect to integrating the Contentful SDK. We've also tried to do the same with the Flurry SDK and have also encountered problems.", "attachment": [ { "id": "63440", "filename": "log.rtf", "author": { "name": "jfalcone", "key": "jfalcone", "displayName": "Joe Falcone", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-10-14T20:32:32.000+0000", "size": 798064, "mimeType": "text/rtf" } ], "flagged": false, "summary": "Adding Third-Party iOS Framework causes build error with 6.2.x", "creator": { "name": "jfalcone", "key": "jfalcone", "displayName": "Joe Falcone", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "jfalcone", "key": "jfalcone", "displayName": "Joe Falcone", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "MacOS Sierra with SDK 6.2.2.GA and 6.2.1.GA and Studio 4.10.0", "comment": { "comments": [ { "id": "429125", "author": { "name": "jfalcone", "key": "jfalcone", "displayName": "Joe Falcone", "active": true, "timeZone": "America/Los_Angeles" }, "body": "The Contentful ObjC framework we added to the build was this one...\r\n\r\nhttp://static.contentful.com/downloads/iOS/ContentfulDeliveryAPI-1.10.4.zip", "updateAuthor": { "name": "jfalcone", "key": "jfalcone", "displayName": "Joe Falcone", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-10-16T08:01:14.000+0000", "updated": "2017-10-16T08:01:14.000+0000" }, { "id": "429151", "author": { "name": "jfalcone", "key": "jfalcone", "displayName": "Joe Falcone", "active": true, "timeZone": "America/Los_Angeles" }, "body": "OK, I think the paths conflict came from having a leftover appc.js file lying around. When I removed the appc.js and ran again, I did get a different error...\r\n\r\n[TRACE] : Undefined symbols for architecture x86_64:\r\n[TRACE] : \"_OBJC_CLASS_$_NSManagedObject\", referenced from:\r\n[TRACE] : _OBJC_CLASS_$_CDALocalizablePersistedEntry in ContentfulDeliveryAPI(CDALocalizablePersistedEntry.o)\r\n[TRACE] : \"_OBJC_METACLASS_$_NSManagedObject\", referenced from:\r\n[TRACE] : _OBJC_METACLASS_$_CDALocalizablePersistedEntry in ContentfulDeliveryAPI(CDALocalizablePersistedEntry.o)\r\n[TRACE] : ld: symbol(s) not found for architecture x86_64\r\n[TRACE] : clang: error: linker command failed with exit code 1 (use -v to see invocation)\r\n[ERROR] : ** BUILD FAILED **\r\n[ERROR] : The following build commands failed:\r\n[ERROR] : \tLd build/Products/Debug-iphonesimulator/Hyperloop_Sample.app/Hyperloop_Sample normal x86_64\r\n[ERROR] : (1 failure)", "updateAuthor": { "name": "jfalcone", "key": "jfalcone", "displayName": "Joe Falcone", "active": true, "timeZone": "America/Los_Angeles" }, "created": "2017-10-16T20:11:11.000+0000", "updated": "2017-10-16T20:11:11.000+0000" }, { "id": "429158", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "PR (master): https://github.com/appcelerator/titanium_mobile/pull/9528\r\nPR (6_3_X): https://github.com/appcelerator/titanium_mobile/pull/9529\r\n\r\nThere is another follow up fix needed for Hyperloop to make the Contentful SDK working. Will update the ticket as soon as that is ready.", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-10-16T23:06:55.000+0000", "updated": "2017-10-16T23:06:55.000+0000" }, { "id": "429187", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~jfalcone], i assume you are currently using Hyperloop 2.1.3, which is not yet capable of picking up frameworks from the platform folder as it was released before SDK 6.2.0 (where the new framework handling was introduced). Support for this will follow with Hyperloop 2.2.0.\r\n\r\nThe reason you see the above error when you remove {{appc.js}} is because the initial issue you were seeing only occurred with other other third-party swift sources configured, which the hyperloop-examples project does in it's {{appc.js}}. By removing that file you worked around the issue. To resolve the error you are seeing now you have to explicitly pull in the Contentful SDK dependencies via {{appc.js}} configuration key {{hyperloop.ios.xcodebuild.frameworks}} and add {{SystemConfiguration}}, {{MobileCoreServices}} and {{CoreData}}. You can take a look at the {{appc.js}} file from hyperloop-examples project to see an example. However, there are still two follow up fixes required for Hyperloop to actually be able to use the Contentful SDK which are tracked in TIMOB-25402 and TIMOB-25403.", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-10-17T15:05:22.000+0000", "updated": "2017-10-17T15:05:22.000+0000" }, { "id": "429191", "author": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "body": "[~amukherjee], [~ewieber], test instructions with Hyperloop 2.1.3\r\n\r\n# Follow the steps in this ticket by adding the framework to {{app/platform/ios}}\r\n# Add the following system frameworks to the {{frameworks}} configuration option in {{appc.js}}\r\n#* SystemConfiguration\r\n#* MobileCoreServices\r\n#* CoreData\r\n# Build and run the hyperloop-examples application\r\n\r\n*Expected behavior*\r\nThe build is successful and the app loads without a crash.\r\n\r\nNote that it won't be possible to reference the Contentful SDK with Hyperloop 2.1.3 as this ticket focuses on the SDK fix to make the build work again.\r\n", "updateAuthor": { "name": "jvennemann", "key": "jvennemann", "displayName": "Jan Vennemann", "active": true, "timeZone": "Europe/Berlin" }, "created": "2017-10-17T16:12:21.000+0000", "updated": "2017-10-17T16:12:21.000+0000" }, { "id": "429192", "author": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "body": "Verified in SDK builds 7.0.0.v20171017022901 & 6.3.0.v20171017063048", "updateAuthor": { "name": "ewieber", "key": "ewieber", "displayName": "Eric Wieber", "active": false, "timeZone": "America/Los_Angeles" }, "created": "2017-10-17T16:27:37.000+0000", "updated": "2017-10-17T16:27:37.000+0000" } ], "maxResults": 6, "total": 6, "startAt": 0 } } }