[TIMOB-18168] iOS: Module - Cannot build 32-bit module urlSession and coremotion with SDK 3.5.0
GitHub Issue | n/a |
---|---|
Type | Bug |
Priority | High |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2015-11-13T05:32:45.000+0000 |
Affected Version/s | Release 3.5.0 |
Fix Version/s | Release 5.2.0 |
Components | iOS |
Labels | qe-3.5.0, qe-nfc |
Reporter | Wilson Luu |
Assignee | Chee Kiat Ng |
Created | 2014-12-09T22:27:38.000+0000 |
Updated | 2016-02-21T20:14:56.000+0000 |
Description
*Details:* If you try to build a project with both 32-bit modules urlSession and coremotion with SDK 3.5.0, then you will get build failures.
*Note:* Was not able to reproduce this issue with the following 32-bit modules:
||module||version||
|com.appcelerator.apm|1.0.10|
|facebook|3.1.1|
|ti.geofence|1.1.2|
|ti.map|2.0.6|
|ti.touchid|1.0.1|
*Steps to reproduce:*
1. Create a Titanium project
2. Include both com.appcelerator.urlSession (1.0.1) and ti.coremotion (1.0.1) modules in the tiapp.xml; do not need to require them into your app.js
3. Install app to device
*Actual:* On first build failure, you will get this urlSession build error:
[ERROR] : Error Command failed: fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: fat input file (/Users/wluu/Library/Application Support/Titanium/modules/iphone/com.appcelerator.urlSession/1.0.1/libcom.appcelerator.urlsession.a) does not contain the specified architecture (x86_64) to thin it to
at exithandler (child_process.js:648:15)
at ChildProcess.emit (events.js:98:17)
at maybeClose (child_process.js:756:16)
at Socket.<anonymous> (child_process.js:969:11)
at Socket.emit (events.js:95:17)
at Pipe.close (net.js:465:12)
---------------------------------------------
at exports.execFile (child_process.js:702:9)
at exports.exec (child_process.js:589:18)
at processNextCommand (/Users/wluu/Library/Application Support/Titanium/mobilesdk/osx/3.5.0.v20141208122514/iphone/cli/hooks/hyperloop.js:119:7)
at exithandler (child_process.js:646:7)
at ChildProcess.emit (events.js:98:17)
at maybeClose (child_process.js:756:16)
at Socket.<anonymous> (child_process.js:969:11)
4. Use change the urlSession version module to latest (1.1.0)
5. Save changes and install to device
*Actual:* On second build failure, you will get this coremotion build error:
[ERROR] : Error Command failed: fatal error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/lipo: fat input file (/Users/wluu/Library/Application Support/Titanium/modules/iphone/ti.coremotion/1.0.1/libti.coremotion.a) does not contain the specified architecture (x86_64) to thin it to
at exithandler (child_process.js:648:15)
at ChildProcess.emit (events.js:98:17)
at maybeClose (child_process.js:756:16)
at Socket.<anonymous> (child_process.js:969:11)
at Socket.emit (events.js:95:17)
at Pipe.close (net.js:465:12)
---------------------------------------------
at exports.execFile (child_process.js:702:9)
at exports.exec (child_process.js:589:18)
at processNextCommand (/Users/wluu/Library/Application Support/Titanium/mobilesdk/osx/3.5.0.v20141208122514/iphone/cli/hooks/hyperloop.js:119:7)
at exithandler (child_process.js:646:7)
at ChildProcess.emit (events.js:98:17)
at maybeClose (child_process.js:756:16)
at Socket.<anonymous> (child_process.js:969:11)
*Expected:* Should fail gracefully with warning indicating to the user that they should use the latest modules or build fine like the other specified 32-bit modules.
Should I read this ticket as "make the build failure more obvious"?
Only if that is the expected behavior because the other 32-bit modules are able to build fine together.
Created ticket for CLI to fail build with a list of modules and the architectures they are missing. TIMOB-18176
[~jalter] Why can’t this be resolved using the same sort of technique I proposed for TIMOB-18176? (I get hyperloop errors when attempting to compile the coremotion module. And unlike our other module repos, neither urlsession nor coremotion includes a dist folder with compiled versions. So I can't test this directly myself.) But the plug-in check I wrote would run before the build gets to the stage throwing the errors shown above.
Fixed in TIMOB-19386 and MOD-2150 as part of the module refactoring.
Verified fixed, using: MacOS 10.11.3 (15D21) Studio 4.5.0.201602170821 Ti SDK 5.2.0.v20160220080449 Appc NPM 4.2.3-2 Appc CLI 5.2.0-269 Alloy 1.7.33 Xcode 7.2 (7C68) APM 1.1.5 URLSession 2.0.0 Facebook 5.0.1 ti.coremotion 2.0.0 ti.map 2.5.2 ti.safaridialog 1.0.5 ti.touchid 1.2.0 Project including the above modules successfully builds, without issue.