Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-18065] Add compiled architectures to module manifest template

GitHub Issuen/a
TypeImprovement
PriorityHigh
StatusClosed
ResolutionFixed
Resolution Date2014-11-21T23:33:16.000+0000
Affected Version/sn/a
Fix Version/sRelease 3.5.0, Release 4.0.0
ComponentsAndroid, BlackBerry, CLI, iOS
Labelsn/a
ReporterIngo Muschenetz
AssigneeJon Alter
Created2014-11-21T00:02:00.000+0000
Updated2015-01-20T21:23:56.000+0000

Description

With the addition of 64-bit support, it becomes helpful to know the architectures available in a compiled module. We can then use this ins tooling to make sure modules are compiled correctly for use. We update the module template manifest file with the following values (*notice they are space delimited*): Android: architectures: armeabi armeabi-v7a x86 BlackBerry: architectures: arm x86 iOS: architectures: armv7 i386 x86_64 arm64 An example:
#

this is your module manifest and used by Titanium

during compilation, packaging, distribution, etc.

# version: 1.1.0 apiversion: 2 architectures: armv7 i386 x86_64 arm64 description: Awesome App Functionality author: Appcelerator license: Apache v2 copyright: Copyright (c) 2013 by Appcelerator

these should not be edited

...

Comments

  1. Fokke Zandbergen 2014-11-21

    I could use this perfectly for gitt.io as well, showing what modules are 64bit e.g. The manifest is the best place to have it, as long as we can be sure any module made compatible for 64-bit will always have this in it, so it should not require any manual action by the module developer.
  2. Ingo Muschenetz 2014-11-21

    I think the question is how/if we can auto-update these values. We can place them in the manifest by default, but should we re-update them on module rebuild?
  3. Stephen Feather 2014-11-21

    If a developer changes something in their default xcode projects, something that changes the architectures, it be nice if the manifest in the .zip would reflect the true architectures. How hard is this to implement, @ingo? So, yes, the primary manifest needs to be updated. :(
  4. Ingo Muschenetz 2014-11-21

    The consensus is that we should auto-update the manifest on each build. Thus, run these commands after the build to confirm architectures: * iOS: http://ss64.com/osx/lipo.html * Android: Appears the simplest approach is enumerate the folder names under the "libs" directory: https://software.intel.com/en-us/blogs/2014/07/03/how-to-set-up-an-ndk-project-to-compile-for-multiple-target-platforms * BlackBerry: TBD
  5. Fokke Zandbergen 2014-11-21

    Looks good!
  6. Ingo Muschenetz 2014-11-21

    We moved to space-delimited architectures, which seems acceptable, since Java does this in manifest lists: https://docs.oracle.com/javase/tutorial/deployment/jar/downman.html
  7. Jon Alter 2014-11-21

    PRs: ti.map (ios/android): https://github.com/appcelerator-modules/ti.map/pull/73 ti.facebook (ios): https://github.com/appcelerator-modules/ti.facebook/pull/15 ti.touchid (ios): https://github.com/appcelerator-modules/ti.touchid/pull/12 Adding above modules to timob master: https://github.com/appcelerator/titanium_mobile/pull/6373 3_5_X: https://github.com/appcelerator/titanium_mobile/pull/6374
  8. Jon Alter 2014-11-21

    Updating module template in timob master: https://github.com/appcelerator/titanium_mobile/pull/6375 3_5_X: https://github.com/appcelerator/titanium_mobile/pull/6376
  9. Ingo Muschenetz 2014-11-21

    Approved. Merged.
  10. Jon Alter 2014-11-24

    Updating Ti.CloudPush module in timob: master: https://github.com/appcelerator/titanium_mobile/pull/6384 3_5_X: https://github.com/appcelerator/titanium_mobile/pull/6386
  11. Jon Alter 2015-01-13

    Blackberry PR: https://github.com/appcelerator/titanium_mobile_blackberry/pull/274
  12. Eric Merriman 2015-01-20

    Validated module manifest template has compiled architectures

JSON Source