Project: titanium
Issue TIMOB-14973: Android Build: Validate command line arguments and tiapp.xml settings
* 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 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)
Story points: 13