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

Android Build: Validate command line arguments and tiapp.xml settings

    Details

      Description

      • validate command line options
        • --alias
        • --android-sdk
        • --avd-abi
        • --avd-id
        • --avd-name NEW!
        • --avd-skin
        • --device NEW! (TIMOB-12661 CLI: Support adb's -s option for pointing a build to a specific emulator or device)
        • --debug-host
        • --deploy-type NEW! (TIMOB-9139 Android: Tooling: How to set the deploytype)
        • --key-password NEW! (TIMOB-6423 builder.py should accept an alias password)
        • --keystore
        • --output-dir
        • --store-password (formerly --password)
        • --target (emulator, device, dist-playstore)
      • if 64-bit Linux
        • make sure i386 architecture has been added (not sure how to check, but to add run "dpkg --add-architecture i386")
        • make sure ia32-libs package is installed (TIMOB-13520 Android Emulator: improve error message from missing ia32-libs dependency on linux)
        • make sure /usr/lib/libGL.so exists
      • enforce sdk dependencies
        • check java version is <=1.6 (TIMOB-5010 Latest version of Java unusable for building Android projects)
      • check that build directory is writeable
      • read tiapp.xml
        • read proguard flag (TIMOB-2782 Android: Generate / Run a Proguard configuration based on API usage)
        • determine tool api level
          • ensure correct version fallback (TIMOB-11603 Android: invalid android path in bash profile results in project creation error, improve error message)
        • packageid must contain at least one period (prepend "com." if no periods present)
        • appversion should be the tiapp.xml <version> and is injected into the AndroidManifest.xml (TIMOB-559 Android: Appversion never taken from tiapp.xml)
        • default minimum Android SDK is 2.3.3 (10)
        • default target Android SDK is latest or 2.3.3 (10)
        • classname is the app name, capitalized, only alpha-numeric and _, prepend _ if starts with a number
        • make sure deploy type is correct
        • validate "ti.ui.defaultunit" property (must be 'system', 'px', 'dp', 'dip', 'mm', 'cm', or 'in') (TIMOB-9682 Android: Packaging:No warning displayed for default system value of 'ti.ui.defaultunit')
        • get "ti.android.loadfromsdcard" property
        • get "ti.android.compilejs" property
        • get "ti.android.include_all_modules" property???
      • scrub debugger/profiler args
      • find the android sdk home
      • validate icon from tiapp.xml
      • detect modules from tiapp.xml
        • if required module is not found, fail (TIMOB-9930 Android: Packaging: With a non-existing module added to the project in the tiapp.xml,app packages without error and gets installed on device) (TIMOB-14064 Android build select wrong module jars for dex build)
        • load module hooks
          • allow module hooks to modify classpath (TIMOB-14170 Android: Provide mechanism for partners to specify the classpath for builds)

        Issue Links

          Activity

          Hide
          cbarber Chris Barber added a comment -
          Show
          cbarber Chris Barber added a comment - Titanium CLI pull request: https://github.com/appcelerator/titanium/pull/55 node-appc pull request: https://github.com/appcelerator/node-appc/pull/56 Titanium Mobile pull request: https://github.com/appcelerator/titanium_mobile/pull/4658
          Hide
          cbarber Chris Barber added a comment -

          To test:

          1) Update to Titanium CLI 3.2.0 (master)
          2) Pull the my timob branch into your timob
          3) scons build_jsca=0 node-appc-branch=master
          4) Install the built SDK
          5) Pull the latest node-appc master
          6) npm install from the node-appc dir
          7) Merge in my changes
          8) Run "./forge test version" to test the node-appc changes

          To test the timob and titanium cli PRs:
          9) Manually drop node-appc into /path/to/titanium/mobilesdk/osx/3.2.0/node_modules/node-appc
          10) ti sdk select 3.2.0
          11) run various Android builds with various tiapp.xml settings

          ti build -p android
          ti build -p android -T device
          ti build -p android -T dist-playstore

          Show
          cbarber Chris Barber added a comment - To test: 1) Update to Titanium CLI 3.2.0 (master) 2) Pull the my timob branch into your timob 3) scons build_jsca=0 node-appc-branch=master 4) Install the built SDK 5) Pull the latest node-appc master 6) npm install from the node-appc dir 7) Merge in my changes 8) Run "./forge test version" to test the node-appc changes To test the timob and titanium cli PRs: 9) Manually drop node-appc into /path/to/titanium/mobilesdk/osx/3.2.0/node_modules/node-appc 10) ti sdk select 3.2.0 11) run various Android builds with various tiapp.xml settings ti build -p android ti build -p android -T device ti build -p android -T dist-playstore
          Hide
          lmorris Lee Morris added a comment -

          Closing ticket as fixed.

          Show
          lmorris Lee Morris added a comment - Closing ticket as fixed.

            People

            • Assignee:
              cbarber Chris Barber
              Reporter:
              cbarber Chris Barber
              Reviewer:
              Allen Yeung
            • Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development

                  Poker Sessions

                  This issue is currently not assigned to any Poker Session.

                    Git Source Code