Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-25402] Hyperloop: iOS - Framework handling regressions

GitHub Issuen/a
TypeBug
PriorityCritical
StatusClosed
ResolutionFixed
Resolution Date2017-10-17T21:16:00.000+0000
Affected Version/sn/a
Fix Version/sHyperloop 2.2.0
ComponentsHyperloop, iOS
Labelsn/a
ReporterJan Vennemann
AssigneeJan Vennemann
Created2017-10-17T11:36:52.000+0000
Updated2017-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 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.

Comments

  1. Jan Vennemann 2017-10-17

    PR (master): https://github.com/appcelerator/hyperloop.next/pull/233 PR (2_2_X): https://github.com/appcelerator/hyperloop.next/pull/234
  2. Eric Wieber 2017-10-19

    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.

JSON Source