[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.