[TIMOB-14973] Android Build: Validate command line arguments and tiapp.xml settings
GitHub Issue | n/a |
---|---|
Type | Story |
Priority | High |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2013-09-07T02:25:35.000+0000 |
Affected Version/s | n/a |
Fix Version/s | 2013 Sprint 18 Core, 2013 Sprint 18, Release 3.2.0 |
Components | Android, Tooling |
Labels | androidbuild, ay-verified, cb-verified |
Reporter | Chris Barber |
Assignee | Chris Barber |
Created | 2013-08-27T23:27:50.000+0000 |
Updated | 2017-03-14T18:07:51.000+0000 |
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 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)
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
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
Closing ticket as fixed.