[TIMOB-25402] Hyperloop: iOS - Framework handling regressions
| GitHub Issue | n/a |
|---|---|
| Type | Bug |
| Priority | Critical |
| Status | Closed |
| Resolution | Fixed |
| Resolution Date | 2017-10-17T21:16:00.000+0000 |
| Affected Version/s | n/a |
| Fix Version/s | Hyperloop 2.2.0 |
| Components | Hyperloop, iOS |
| Labels | n/a |
| Reporter | Jan Vennemann |
| Assignee | Jan Vennemann |
| Created | 2017-10-17T11:36:52.000+0000 |
| Updated | 2017-10-19T18:19:48.000+0000 |
Description
Configuring third-party sources in appc.js causes the FRAMEWORK_SEARCH_PATHS build setting to be overwritten without inheriting other paths. Also pulling in additional system frameworks via the Add the following system frameworks to the
#* SystemConfiguration
#* MobileCoreServices
#* CoreData
Add the following sample code to
frameworks setting in appc.js doesn't work anymore. This is a regression to Hyperloop 2.1.3.
*Steps to reproduce the issue*
Follow the instructions in TIMOB-25393 by placing the Contentful SDK inside the hyperloop-examples project and make sure to select a SDK build that already includes the fix from that ticket
Add the following system frameworks to the frameworks configuration option in appc.js
#* SystemConfiguration
#* MobileCoreServices
#* CoreData
Add the following sample code to app/controllers/index.js
var CDAClient = require('ContentfulDeliveryAPI/CDAClient');
var client = CDAClient.alloc().initWithSpaceKeyAccessToken('foo', 'bar');
Build and run the hyperloop-examples application
*Actual behavior* The build fails with the following linker error due to not linking against CoreData framework:
[TRACE] Undefined symbols for architecture x86_64:
[TRACE] "_OBJC_CLASS_$_NSManagedObject", referenced from:
[TRACE] _OBJC_CLASS_$_CDALocalizablePersistedEntry in ContentfulDeliveryAPI(CDALocalizablePersistedEntry.o)
[TRACE] "_OBJC_METACLASS_$_NSManagedObject", referenced from:
[TRACE] _OBJC_METACLASS_$_CDALocalizablePersistedEntry in ContentfulDeliveryAPI(CDALocalizablePersistedEntry.o)
[TRACE] ld: symbol(s) not found for architecture x86_64
[TRACE] clang: error: linker command failed with exit code 1 (use -v to see invocation)
[ERROR] ** BUILD FAILED **
[ERROR] The following build commands failed:
[ERROR] Ld build/Products/Debug-iphonesimulator/Hyperloop_Sample.app/Hyperloop_Sample normal x86_64
[ERROR] (1 failure)
*Expected behavior*
The build links against the specified system frameworks and is successful. The app loads without a crash.
PR (master): https://github.com/appcelerator/hyperloop.next/pull/233 PR (2_2_X): https://github.com/appcelerator/hyperloop.next/pull/234
Verified. Configured a project to use third party frameworks and as described in the ticket. Both configurations were able to build and run without error.