Uploaded image for project: 'Titanium SDK/CLI'
  1. Titanium SDK/CLI
  2. TIMOB-12025

CLI: Support build configurations to allow multiple build outputs

    Details

    • Type: New Feature
    • Status: Open
    • Priority: High
    • Resolution: Unresolved
    • Affects Version/s: Release 3.0.0
    • Fix Version/s: None
    • Component/s: CLI
    • Environment:

      Titanium CLI: 3.0.21
      Titanium Studio: 3.0.0

      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>
      

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                cbarber Chris Barber
                Reporter:
                dhyde Dustin Hyde
              • Watchers:
                9 Start watching this issue

                Dates

                • Created:
                  Updated:

                  Backbone Issue Sync

                  • Backbone Issue Sync is enabled for your project, but we do not have any synchronization info for this issue.

                    Git Integration