Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-12025] CLI: Support build configurations to allow multiple build outputs

GitHub Issuen/a
TypeNew Feature
PriorityHigh
StatusOpen
ResolutionUnresolved
Affected Version/sRelease 3.0.0
Fix Version/sn/a
ComponentsCLI
Labelscb-tooling, notable, qe-cli100112, qe-nfc, titaniumlib
ReporterDustin Hyde
AssigneeChris Barber
Created2012-12-11T20:34:07.000+0000
Updated2020-03-06T21:36:22.000+0000

Description

CLI: Allow Multiple Build Outputs, this would later be integrated into the Titanium Studio UI. Here is a user story:
Would be *really* nice if we could build into build configs different rules before the app is built. 

E.g working for a client with different apps for language variants. So they don't want one app multi-language but separate fixed language builds. 

Could be easily achievable if I had the ability to say:-

For GB config use this info.plist, this XML file, this assets folder (videos, audios and images that's are English)

For the same project I do a DE build script that uses other folders. 

Result is one codebase, two separate build outputs and it remains nicely compatible with Git

Even an "ignore these files/folders" would help
This ticket is phase 1 of 3 phases: 1. Decouple settings from the deploy type and expose the defaults in an XML file that is in the SDK (this ticket) 2. Allow setting overrides in the tiapp.xml (TIMOB-16869) 3. Expose build configurations via command line options that allow selection of custom build configuration (TIMOB-16870) Here's an example of the default settings:
<build-configurations>
    <configuration name="development">
        <deploy-type>development</deploy-type>
        <encode-i18n>false</encode-i18n>
        <minify-js>false</minify-js>
        <minify-css>false</minify-css>
        <encrypt-js>false</encrypt-js>
        <optimize-ios-pngs>false</optimize-ios-pngs>
        <remove-unused-ti-apis>false</remove-unused-ti-apis>
        <allow-debugging>true</allow-debugging>
        <allow-profiling>true</allow-profiling>
        <show-errors>true</show-errors>
    </configuration>
    <configuration name="test">
        <deploy-type>test</deploy-type>
        <encode-i18n>true</encode-i18n>
        <minify-js>true</minify-js>
        <minify-css>true</minify-css>
        <encrypt-js>false</encrypt-js>
        <optimize-ios-pngs>true</optimize-ios-pngs>
        <remove-unused-ti-apis>true</remove-unused-ti-apis>
        <allow-debugging>true</allow-debugging>
        <allow-profiling>true</allow-profiling>
        <show-errors>true</show-errors>
    </configuration>
    <configuration name="production">
        <deploy-type>production</deploy-type>
        <encode-i18n>true</encode-i18n>
        <minify-js>true</minify-js>
        <minify-css>true</minify-css>
        <encrypt-js>false</encrypt-js>
        <optimize-ios-pngs>true</optimize-ios-pngs>
        <remove-unused-ti-apis>true</remove-unused-ti-apis>
        <allow-debugging>false</allow-debugging>
        <allow-profiling>false</allow-profiling>
        <show-errors>false</show-errors>
    </configuration>
</build-configurations>

Comments

  1. Shawn Lipscomb 2012-12-11

    Another use for this, other than internationalization, would be where a base app is "branded" for multiple clients. The code base is the same (or close to the same), but the assets are unique for each client. I think this is a great idea for productivity. Not limited to internationalization.
  2. Jason Kneen 2012-12-12

    Absolutely - my original thought was not just for internationalisation - your example is precisely what sort this would allow. e.g. Full / lite versions etc. Also some sort of inheritance based build config would be cool e.g. to allow for Lite / Full versions.
  3. Matt Schmulen 2012-12-13

    bump ^^
  4. Shawn Lipscomb 2013-06-05

    Still looking for this feature. I really could have used an "ignore these files/folders" in the app I'm working on now.
  5. Chris Barber 2013-06-05

    @Shawn, there is no spec for this and there is no time to develop it for 3.2, hence it's been re-prioritized as low priority.
  6. me@gmail.com 2014-03-21

    bump
  7. Jerod Fritz 2014-06-27

    +1

JSON Source