@maccesar/titools 3.3.0 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/README.md +27 -61
  2. package/lib/cleanup.js +29 -0
  3. package/lib/commands/agents.js +8 -7
  4. package/lib/commands/skills.js +118 -23
  5. package/lib/config.js +13 -15
  6. package/lib/installer.js +5 -3
  7. package/lib/utils.js +36 -0
  8. package/package.json +1 -1
  9. package/skills/alloy-guides/SKILL.md +188 -0
  10. package/skills/alloy-guides/references/CLI_TASKS.md +233 -0
  11. package/skills/alloy-guides/references/CONCEPTS.md +171 -0
  12. package/skills/alloy-guides/references/CONTROLLERS.md +279 -0
  13. package/skills/alloy-guides/references/MODELS.md +742 -0
  14. package/skills/alloy-guides/references/MODELS_ADVANCED.md +482 -0
  15. package/skills/alloy-guides/references/PURGETSS.md +57 -0
  16. package/skills/alloy-guides/references/VIEWS_DYNAMIC.md +235 -0
  17. package/skills/alloy-guides/references/VIEWS_STYLES.md +375 -0
  18. package/skills/alloy-guides/references/VIEWS_WITHOUT_CONTROLLERS.md +102 -0
  19. package/skills/alloy-guides/references/VIEWS_XML.md +581 -0
  20. package/skills/alloy-guides/references/WIDGETS.md +160 -0
  21. package/skills/alloy-howtos/SKILL.md +179 -0
  22. package/skills/alloy-howtos/references/best_practices.md +121 -0
  23. package/skills/alloy-howtos/references/cli_reference.md +230 -0
  24. package/skills/alloy-howtos/references/config_files.md +158 -0
  25. package/skills/alloy-howtos/references/custom_tags.md +148 -0
  26. package/skills/alloy-howtos/references/debugging_troubleshooting.md +78 -0
  27. package/skills/alloy-howtos/references/samples.md +156 -0
  28. package/skills/purgetss/SKILL.md +6 -3
  29. package/skills/purgetss/references/EXAMPLES.md +8 -6
  30. package/skills/purgetss/references/app-branding.md +5 -0
  31. package/skills/purgetss/references/apply-directive.md +1 -1
  32. package/skills/purgetss/references/class-categories.md +1 -1
  33. package/skills/purgetss/references/class-index-properties.md +618 -0
  34. package/skills/purgetss/references/class-index.md +4 -610
  35. package/skills/purgetss/references/cli-commands.md +15 -0
  36. package/skills/purgetss/references/custom-fonts.md +39 -36
  37. package/skills/purgetss/references/custom-rules.md +1 -1
  38. package/skills/purgetss/references/customization-deep-dive.md +64 -1
  39. package/skills/purgetss/references/icon-fonts.md +2 -0
  40. package/skills/purgetss/references/migration-guide.md +53 -1
  41. package/skills/purgetss/references/multi-density-images.md +53 -2
  42. package/skills/purgetss/references/svg-pipeline.md +249 -0
  43. package/skills/purgetss/references/tikit-components.md +2 -2
  44. package/skills/purgetss/references/titanium-resets.md +2 -2
  45. package/skills/purgetss/references/ui-ux-design.md +7 -5
  46. package/skills/purgetss/references/version-history.md +12 -0
  47. package/skills/ti-api/SKILL.md +128 -0
  48. package/skills/ti-api/references/api-android.md +675 -0
  49. package/skills/ti-api/references/api-app-platform.md +636 -0
  50. package/skills/ti-api/references/api-core.md +764 -0
  51. package/skills/ti-api/references/api-data-network.md +641 -0
  52. package/skills/ti-api/references/api-media.md +655 -0
  53. package/skills/ti-api/references/api-modules-ble-bluetooth.md +657 -0
  54. package/skills/ti-api/references/api-modules-coremotion-urlsession.md +411 -0
  55. package/skills/ti-api/references/api-modules-map.md +632 -0
  56. package/skills/ti-api/references/api-modules-nfc.md +725 -0
  57. package/skills/ti-api/references/api-modules-social-misc.md +526 -0
  58. package/skills/ti-api/references/api-services.md +700 -0
  59. package/skills/ti-api/references/api-ui-android.md +499 -0
  60. package/skills/ti-api/references/api-ui-extras.md +702 -0
  61. package/skills/ti-api/references/api-ui-ios-animator.md +378 -0
  62. package/skills/ti-api/references/api-ui-ios.md +756 -0
  63. package/skills/ti-api/references/api-ui-lists.md +581 -0
  64. package/skills/ti-api/references/api-ui-text-input.md +607 -0
  65. package/skills/ti-api/references/api-ui-views.md +572 -0
  66. package/skills/ti-api/references/api-ui-windows-navigation.md +676 -0
  67. package/skills/ti-api/references/api-xml-global.md +743 -0
  68. package/skills/ti-guides/SKILL.md +82 -0
  69. package/skills/ti-guides/references/advanced-data-and-images.md +155 -0
  70. package/skills/ti-guides/references/android-manifest.md +97 -0
  71. package/skills/ti-guides/references/app-distribution.md +373 -0
  72. package/skills/ti-guides/references/application-frameworks.md +366 -0
  73. package/skills/ti-guides/references/cli-reference.md +700 -0
  74. package/skills/ti-guides/references/coding-best-practices.md +150 -0
  75. package/skills/ti-guides/references/commonjs-advanced.md +279 -0
  76. package/skills/ti-guides/references/hello-world.md +99 -0
  77. package/skills/ti-guides/references/hyperloop-native-access.md +458 -0
  78. package/skills/ti-guides/references/javascript-primer.md +402 -0
  79. package/skills/ti-guides/references/reserved-words.md +36 -0
  80. package/skills/ti-guides/references/resources.md +172 -0
  81. package/skills/ti-guides/references/style-and-conventions.md +104 -0
  82. package/skills/ti-guides/references/tiapp-config.md +655 -0
  83. package/skills/ti-howtos/SKILL.md +131 -0
  84. package/skills/ti-howtos/references/android-platform-deep-dives.md +609 -0
  85. package/skills/ti-howtos/references/automation-fastlane-appium.md +96 -0
  86. package/skills/ti-howtos/references/buffer-codec-streams.md +162 -0
  87. package/skills/ti-howtos/references/cross-platform-development.md +358 -0
  88. package/skills/ti-howtos/references/debugging-profiling.md +473 -0
  89. package/skills/ti-howtos/references/extending-titanium.md +684 -0
  90. package/skills/ti-howtos/references/google-maps-v2.md +172 -0
  91. package/skills/ti-howtos/references/ios-map-kit.md +149 -0
  92. package/skills/ti-howtos/references/ios-platform-deep-dives.md +595 -0
  93. package/skills/ti-howtos/references/local-data-sources.md +310 -0
  94. package/skills/ti-howtos/references/location-and-maps.md +267 -0
  95. package/skills/ti-howtos/references/media-apis.md +268 -0
  96. package/skills/ti-howtos/references/notification-services.md +539 -0
  97. package/skills/ti-howtos/references/remote-data-sources.md +339 -0
  98. package/skills/ti-howtos/references/tutorials.md +552 -0
  99. package/skills/ti-howtos/references/using-modules.md +182 -0
  100. package/skills/ti-howtos/references/web-content-integration.md +288 -0
  101. package/skills/ti-howtos/references/webpack-build-pipeline.md +125 -0
@@ -0,0 +1,700 @@
1
+ # Titanium CLI reference
2
+
3
+ Reference for Titanium CLI commands, options, and configuration.
4
+
5
+ ## Environment setup
6
+
7
+ ### Check environment
8
+
9
+ ```bash
10
+ ti setup check
11
+ ```
12
+
13
+ Reports configured tools and potential issues.
14
+
15
+ ### Setup wizard
16
+
17
+ ```bash
18
+ ti setup
19
+ ti setup <section>
20
+ ```
21
+
22
+ Runs the interactive setup wizard. The `<section>` can be one of: quick, check, user, app, network, cli, sdk, ios, android, and paths.
23
+
24
+ ### Get system info
25
+
26
+ ```bash
27
+ ti info
28
+ ```
29
+
30
+ Detailed environment info (SDKs, certificates, provisioning profiles).
31
+
32
+ ```bash
33
+ ti info -p android # Android-specific info
34
+ ti info -p ios # iOS-specific info
35
+ ```
36
+
37
+ #### Info options
38
+
39
+ | Option | Description |
40
+ | ---------------------- | --------------------------------------------------------------------------------------------------- |
41
+ | `-o, --output <value>` | Output format: report or json. Defaults to report. |
42
+ | `-t, --types <value>` | Comma-separated list of types: all, os, nodejs, titanium, ios, jdk, haxm, android. Defaults to all. |
43
+
44
+ ### Help
45
+
46
+ Displays the help screen for the CLI or a specific command.
47
+
48
+ ```bash
49
+ ti help
50
+ ti help <command>
51
+ ti --help
52
+ ti <command> --help
53
+ ```
54
+
55
+ ### Configure CLI
56
+
57
+ ```bash
58
+ # Display current config
59
+ ti config
60
+
61
+ # Set option
62
+ ti config cli.logLevel info
63
+
64
+ # Append to path
65
+ ti config -a paths.hooks "/path/to/hook"
66
+
67
+ # Remove all Android options
68
+ ti config -r android
69
+ ```
70
+
71
+ #### Config options
72
+
73
+ | Option | Description |
74
+ | ---------------------- | ---------------------------------------------------------------- |
75
+ | `-a, --append` | Append a value to a key containing a list of values. |
76
+ | `-r, --remove` | Remove the specified config key and all its descendants. |
77
+ | `-o, --output <value>` | Output format: report, json, or json-object. Defaults to report. |
78
+
79
+ Alternative methods:
80
+ ```bash
81
+ # Pass JSON string
82
+ ti build -p ios --config "{ paths: { hooks: '/path/to/hook' } }"
83
+
84
+ # Pass JSON file
85
+ ti build -p ios --config-file "/Users/me/customConfig.json"
86
+ ```
87
+
88
+ ---
89
+
90
+ ## Project commands
91
+
92
+ ### Create project
93
+
94
+ For Alloy projects (recommended):
95
+ ```bash
96
+ ti create -t app --alloy --id <APP_ID> -n <APP_NAME> -p <PLATFORMS> -d <WORKSPACE> -u <URL>
97
+ ```
98
+
99
+ Example (Alloy):
100
+ ```bash
101
+ ti create -t app --alloy --id com.titaniumsdk.sample -n SampleProject -p android,ios -d ~/Documents/workspace -u https://titaniumsdk.com
102
+ ```
103
+
104
+ For Classic Titanium projects:
105
+ ```bash
106
+ ti create -t app --id <APP_ID> -n <APP_NAME> -p <PLATFORMS> -d <WORKSPACE> -u <URL>
107
+ ```
108
+
109
+ Parameters:
110
+ - `--alloy`: create an Alloy project (recommended for new projects)
111
+ - `-t, --type`: project type: app (default), applewatch, module (or timodule)
112
+ - `--id`: app ID (reverse domain notation)
113
+ - `-n, --name`: app name
114
+ - `-p, --platforms`: comma-separated platforms (`android`, `ios`, `ipad`, `iphone`)
115
+ - `-d, --workspace-dir`: workspace directory
116
+ - `-u, --url`: app URL
117
+ - `-f, --force`: force creation even if the path already exists
118
+ - `--template`: project template to use (name, directory, ZIP file, or remote ZIP URL)
119
+ - `-s, --sdk`: Titanium SDK version to use
120
+
121
+ Use `--alloy` for new projects. Use Classic (`--classic` or omitting `--alloy`) only for legacy projects.
122
+
123
+ ### Build project
124
+
125
+ ```bash
126
+ ti build -p <PLATFORM> [OPTIONS]
127
+ ```
128
+
129
+ ### Project management
130
+
131
+ ```bash
132
+ ti project [OPTIONS] [<key>] [<value>]
133
+ ```
134
+
135
+ Gets and sets `tiapp.xml` settings. When called with a key, returns the value. When called with a key and value, sets the value in `tiapp.xml`.
136
+
137
+ It also allows you to set deployment targets using a comma-separated list of platforms. If a platform is enabled for the first time, it will copy default resources into the project Resources folder without overwriting.
138
+
139
+ Examples:
140
+ ```bash
141
+ # Get a tiapp.xml value
142
+ ti project sdk-version
143
+
144
+ # Set a tiapp.xml value
145
+ ti project sdk-version 12.2.0.GA
146
+
147
+ # Set deployment targets (must list all desired platforms)
148
+ ti project deployment-targets iphone,ipad,android
149
+ ```
150
+
151
+ Tasks:
152
+ - `scan`: scan a directory for Titanium projects
153
+
154
+ Options:
155
+
156
+ | Option | Description |
157
+ | --------------------------- | ------------------------------------------------------------------------ |
158
+ | `-o, --output <value>` | Output format: report, json, or text. Defaults to report. |
159
+ | `--project-dir <directory>` | Directory containing the project. Defaults to current working directory. |
160
+
161
+ ---
162
+
163
+ ## Build commands
164
+
165
+ ### Generic build options and flags
166
+
167
+ | Option | Description |
168
+ | ------------------------------- | -------------------------------------------------------------------------------------------------------- |
169
+ | `-b, --build-only` | Only perform the build; does not install or run the app. |
170
+ | `-f, --force` | Force a clean rebuild. |
171
+ | `--skip-js-minify` | Bypass JavaScript minification. Simulator builds are never minified. Only supported for Android and iOS. |
172
+ | `--log-level <level>` | Minimum logging level: trace, debug, info, warn, error. |
173
+ | `-p, --platforms <platform>` | Target build platform: android or ios (iphone and ipad are accepted as synonyms for ios). |
174
+ | `-d, --project-dir <directory>` | Directory containing the project. Defaults to current working directory. |
175
+ | `-s, --sdk <version>` | Titanium SDK version to build with. |
176
+
177
+ ### Android emulator
178
+
179
+ ```bash
180
+ ti build -p android [-C <EMULATOR_NAME>]
181
+ ```
182
+
183
+ Example:
184
+ ```bash
185
+ ti build -p android -C "Google Nexus 7 - 4.4.2 - API 19 - 800x1280"
186
+ ```
187
+
188
+ List emulators: `ti info -p android`
189
+
190
+ ### Android device
191
+
192
+ ```bash
193
+ ti build -p android -T device -C <DEVICE_ID>
194
+ ```
195
+
196
+ Example:
197
+ ```bash
198
+ ti build -p android -T device -C deadbeef
199
+ ```
200
+
201
+ Omit `-C` if only one device is connected.
202
+
203
+ ### Android build options
204
+
205
+ | Option | Description |
206
+ | --------------------------------- | ----------------------------------------------------------------------------------------------------- |
207
+ | `-A, --android-sdk <path>` | Path to the Android SDK. |
208
+ | `-C, --device-id <name>` | Name of the device or emulator. Use "all" with --target "device" to install on all connected devices. |
209
+ | `-D, --deploy-type <type>` | Controls optimization, encryption, analytics: development, test, production. |
210
+ | `-K, --keystore <path>` | Location of the keystore file. |
211
+ | `--key-password <keypass>` | Password of the keystore private key. Defaults to --store-password value. |
212
+ | `--liveview` | Start a LiveView session for live UI previews. |
213
+ | `-L, --alias <alias>` | Alias for the keystore. |
214
+ | `--no-launch` | Disable launching the app after installing. |
215
+ | `-O, --output-dir <dir>` | Output directory (used when target is dist-playstore). |
216
+ | `-P, --store-password <password>` | Password for the keystore. |
217
+ | `--sigalg <algorithm>` | Digital signature algorithm: MD5withRSA, SHA1withRSA, SHA256withRSA. |
218
+ | `-T, --target <value>` | Target: emulator, device, or dist-playstore. |
219
+
220
+ ### iOS simulator
221
+
222
+ ```bash
223
+ ti build -p ios [-C <SIMULATOR_NAME>]
224
+ ```
225
+
226
+ Example:
227
+ ```bash
228
+ ti build -p ios -C "iPad Retina"
229
+ ```
230
+
231
+ ### iOS device
232
+
233
+ ```bash
234
+ ti build -p ios -T device -C <DEVICE_UDID> [-V "<CERT_NAME>" -P <PROFILE_UUID>]
235
+ ```
236
+
237
+ Example:
238
+ ```bash
239
+ ti build -p ios -T device -C itunes -V "Loretta Martin (GE7BAC5)" -P "11111111-2222-3333-4444-555555555555"
240
+ ```
241
+
242
+ Omit `-V` and `-P` to be prompted.
243
+
244
+ ### iOS build options
245
+
246
+ | Option | Description |
247
+ | -------------------------------- | ------------------------------------------------------------------------------------------------------ |
248
+ | `-C, --device-id <name>` | Name of the device or simulator. Use "all" with --target "device" to install on all connected devices. |
249
+ | `-D, --deploy-type <type>` | Controls optimization, encryption, analytics: development, test, production. |
250
+ | `-F, --device-family <value>` | Device family: iphone, ipad, or universal (default). |
251
+ | `--force-copy` | Force files to be copied instead of symlinked (simulator builds only). |
252
+ | `-I, --ios-version <value>` | iOS SDK version to build for. Default: latest installed. |
253
+ | `-K, --keychain <value>` | Path to distribution keychain (for device/dist targets). |
254
+ | `--launch-bundle-id <id>` | After installing in simulator, launch a different app (useful for test runners). |
255
+ | `--launch-watch-app` | Launch both the watch app and main app (simulator only). |
256
+ | `--launch-watch-app-only` | Launch only the watch app (simulator only). |
257
+ | `-O, --output-dir <dir>` | Output directory (used when target is dist-adhoc). |
258
+ | `-P, --pp-uuid <uuid>` | Provisioning profile UUID (for device/dist targets). |
259
+ | `-R, --distribution-name <name>` | iOS Distribution Certificate (for dist targets). |
260
+ | `--sim-focus` | Focus the iOS Simulator after launching (default: true). Use --no-sim-focus to disable. |
261
+ | `-T, --target <value>` | Target: simulator, device, dist-appstore, dist-adhoc, macos, or dist-macappstore. |
262
+ | `-V, --developer-name <name>` | iOS Developer Certificate (required for device target). |
263
+ | `-W, --watch-device-id <udid>` | Watch simulator UDID (simulator only). |
264
+ | `--watch-app-name <name>` | Name of the watch app to launch (simulator only). |
265
+ | `-Y, --sim-type <type>` | iOS Simulator type: iphone or ipad (simulator only). |
266
+
267
+ ### Clean build
268
+
269
+ ```bash
270
+ ti clean [-p <PLATFORM>]
271
+ ```
272
+
273
+ Examples:
274
+ ```bash
275
+ ti clean # All platforms
276
+ ti clean -p ios # iOS only
277
+ ```
278
+
279
+ #### Clean options
280
+
281
+ | Option | Description |
282
+ | ------------------------------- | ------------------------------------------------------------------------ |
283
+ | `-p, --platforms <platform>` | A single platform to clean: android or ios. |
284
+ | `-d, --project-dir <directory>` | Directory containing the project. Defaults to current working directory. |
285
+ | `-s, --sdk <version>` | Titanium SDK version. |
286
+ | `--log-level <level>` | Minimum logging level: trace, debug, info, warn, error. |
287
+
288
+ ### Module management
289
+
290
+ ```bash
291
+ ti module [TASK] [OPTIONS]
292
+ ```
293
+
294
+ Tasks:
295
+ - `create`: create a new Titanium module
296
+ - `list`: list installed Titanium modules
297
+
298
+ #### Module create
299
+
300
+ ```bash
301
+ ti create -t module --id <MODULE_ID> -n <MODULE_NAME> -p <PLATFORMS> -d <WORKSPACE>
302
+ ```
303
+
304
+ Parameters:
305
+ - `-t, --type`: set to module (or timodule)
306
+ - `--id`: module ID (reverse domain notation)
307
+ - `-n, --name`: module name
308
+ - `-p, --platforms`: target platforms
309
+ - `-d, --workspace-dir`: workspace directory
310
+ - `-f, --force`: force creation even if path already exists
311
+ - `--template`: module template to use
312
+
313
+ #### Module list
314
+
315
+ Prints a list of installed modules.
316
+
317
+ ```bash
318
+ ti module
319
+ ti module list
320
+ ti module list --project-dir /path/to/project
321
+ ```
322
+
323
+ Options:
324
+
325
+ | Option | Description |
326
+ | ----------------------- | --------------------------------------------------------------------------- |
327
+ | `-o, --output <value>` | Output format: report, json, or grid. Defaults to report. |
328
+ | `--project-dir <value>` | Directory of the project to analyze. Defaults to current working directory. |
329
+
330
+ ### Plugin management
331
+
332
+ ```bash
333
+ ti plugin [TASK] [OPTIONS]
334
+ ```
335
+
336
+ #### Plugin list
337
+
338
+ Prints a list of installed plugins.
339
+
340
+ ```bash
341
+ ti plugin
342
+ ti plugin list
343
+ ti plugin list --project-dir /path/to/project
344
+ ```
345
+
346
+ Options:
347
+
348
+ | Option | Description |
349
+ | ----------------------- | --------------------------------------------------------------------------- |
350
+ | `-o, --output <value>` | Output format: report, json, or grid. Defaults to report. |
351
+ | `--project-dir <value>` | Directory of the project to analyze. Defaults to current working directory. |
352
+
353
+ ---
354
+
355
+ ## Distribution commands
356
+
357
+ ### Google Play (Android)
358
+
359
+ ```bash
360
+ ti build -p android -T dist-playstore [-K <KEYSTORE> -P <PASSWORD> -L <ALIAS> -O <OUTPUT>]
361
+ ```
362
+
363
+ Example:
364
+ ```bash
365
+ ti build -p android -T dist-playstore -K ~/android.keystore -P secret -L foo -O ./dist/
366
+ ```
367
+
368
+ If key password differs from keystore password:
369
+ ```bash
370
+ --key-password <KEYPASS>
371
+ ```
372
+
373
+ ### Ad Hoc (iOS)
374
+
375
+ ```bash
376
+ ti build -p ios -T dist-adhoc [-R <CERT_NAME> -P <PROFILE_UUID> -O <OUTPUT>]
377
+ ```
378
+
379
+ Example:
380
+ ```bash
381
+ ti build -p ios -T dist-adhoc -R "Pseudo, Inc." -P "FFFFFFFF-EEEE-DDDD-CCCC-BBBBBBBBBBBB" -O ./dist/
382
+ ```
383
+
384
+ ### App Store (iOS)
385
+
386
+ ```bash
387
+ ti build -p ios -T dist-appstore [-R <CERT_NAME> -P <PROFILE_UUID>]
388
+ ```
389
+
390
+ Example:
391
+ ```bash
392
+ ti build -p ios -T dist-appstore -R "Pseudo, Inc." -P "AAAAAAAA-0000-9999-8888-777777777777"
393
+ ```
394
+
395
+ Installs the package to Xcode Organizer.
396
+
397
+ ### Mac Catalyst (macOS Development)
398
+
399
+ ```bash
400
+ ti build -p ios -T macos
401
+ ```
402
+
403
+ Builds a Mac Catalyst version of your iOS app for local testing. The resulting `.app` bundle is located at:
404
+ ```
405
+ build/iphone/build/Products/Debug-maccatalyst/AppName.app
406
+ ```
407
+
408
+ For a production build:
409
+ ```bash
410
+ ti build -p ios -T macos --deploy-type production
411
+ ```
412
+
413
+ The release `.app` bundle will be at:
414
+ ```
415
+ build/iphone/build/Products/Release-maccatalyst/AppName.app
416
+ ```
417
+
418
+ ### Mac App Store (Mac Catalyst Distribution)
419
+
420
+ ```bash
421
+ ti build -p ios -T dist-macappstore [-R <CERT_NAME>]
422
+ ```
423
+
424
+ Example:
425
+ ```bash
426
+ ti build -p ios -T dist-macappstore -R "Apple Distribution: Your Name (TEAM_ID)"
427
+ ```
428
+
429
+ **Important Notes:**
430
+ - Requires a Mac App Store Distribution Certificate (not iOS Distribution)
431
+ - The build creates an archive for Mac App Store distribution
432
+ - The `.xcarchive` is installed in Xcode's Organizer
433
+ - Uses `Release-maccatalyst` configuration
434
+ - Destination: `generic/platform=macOS`
435
+ - Code signing is set to Manual with identity `-`
436
+
437
+ The target `dist-macappstore` is available in Titanium SDK 13.1.1.GA and later.
438
+
439
+ ---
440
+
441
+ ## SDK management
442
+
443
+ ### List SDKs
444
+
445
+ ```bash
446
+ ti sdk list
447
+ ```
448
+
449
+ Options:
450
+
451
+ | Option | Description |
452
+ | ---------------------- | -------------------------------------------------- |
453
+ | `-b, --branches` | Retrieve and print all branches. |
454
+ | `-r, --releases` | Retrieve and print all releases. |
455
+ | `-o, --output <value>` | Output format: report or json. Defaults to report. |
456
+
457
+ ### Select SDK
458
+
459
+ ```bash
460
+ ti sdk select [<version>]
461
+ ```
462
+
463
+ Interactive selection of default SDK. This sets the SDK used to run CLI commands. If the `tiapp.xml` file does not contain an SDK version and the `app.sdk` setting is not set, the application will be built with this SDK.
464
+
465
+ ### Install SDK
466
+
467
+ Downloads the latest Titanium SDK or a specific version.
468
+
469
+ ```bash
470
+ ti sdk install [<version>] [--default] [--force] [--branch <branch_name>]
471
+ ```
472
+
473
+ `<version>` may be a specific version number (for example, `12.2.0.GA`), a URL to a ZIP file, or a local ZIP file path.
474
+
475
+ Options:
476
+
477
+ | Option | Description |
478
+ | ---------------------------- | ------------------------------------ |
479
+ | `-d, --default` | Set as the default SDK. |
480
+ | `-f, --force` | Force reinstallation. |
481
+ | `-k, --keep-files` | Keep downloaded files after install. |
482
+ | `-b, --branch <branch_name>` | Branch to install from, or "latest". |
483
+
484
+ ### Uninstall SDK
485
+
486
+ Uninstalls a specific Titanium SDK version.
487
+
488
+ ```bash
489
+ ti sdk uninstall [<version>] [--force]
490
+ ```
491
+
492
+ Options:
493
+
494
+ | Option | Description |
495
+ | ------------- | ------------------------------------------ |
496
+ | `-f, --force` | Force uninstallation without confirmation. |
497
+
498
+ ### Update SDK
499
+
500
+ Finds the latest version of the Titanium SDK and optionally installs it.
501
+
502
+ ```bash
503
+ ti sdk update [--default] [--force] [--install] [--branch <branch_name>]
504
+ ```
505
+
506
+ Options:
507
+
508
+ | Option | Description |
509
+ | ---------------------------- | --------------------------- |
510
+ | `-d, --default` | Set as the default SDK. |
511
+ | `-f, --force` | Force reinstallation. |
512
+ | `-i, --install` | Install the latest version. |
513
+ | `-b, --branch <branch_name>` | Branch to update from. |
514
+
515
+ ---
516
+
517
+ ## Configuration options
518
+
519
+ ### Android options
520
+
521
+ | Option | Default | Description |
522
+ | ------------------------------------ | ----------- | -------------------------------- |
523
+ | `android.sdkPath` | auto | Android SDK path |
524
+ | `android.ndkPath` | auto | Android NDK path |
525
+ | `android.adb.port` | 5037 | ADB port number |
526
+ | `android.autoSelectDevice` | true | Auto-select device/emulator |
527
+ | `android.symlinkResources` | true (OS X) | Symlink vs copy resources |
528
+ | `android.buildTools.selectedVersion` | max | Build tools version |
529
+ | `android.javac.maxmemory` | "3072M" | JVM heap size |
530
+ | `android.javac.source` | "1.8" | Java source version |
531
+ | `android.javac.target` | "1.8" | Java target version |
532
+ | `android.mergeCustomAndroidManifest` | false | Merge custom AndroidManifest.xml |
533
+
534
+ The `android.javac.source` and `android.javac.target` defaults were originally "1.6" in earlier SDK versions. Modern Titanium SDK requires Java 1.8 or higher. You can override these per-project in `tiapp.xml` using `<property name="android.javac.source" type="string">1.8</property>`.
535
+
536
+ ### iOS options
537
+
538
+ | Option | Default | Description |
539
+ | ---------------------- | ----------- | ------------------------------------- |
540
+ | `ios.developerName` | - | Developer certificate name |
541
+ | `ios.distributionName` | - | Distribution certificate name |
542
+ | `ios.autoSelectDevice` | true | Auto-select device/simulator |
543
+ | `ios.symlinkResources` | true (OS X) | Symlink vs copy resources |
544
+ | `ios.keychain` | - | Specific keychain to search for certs |
545
+ | `ios.xcodePath` | auto | Path to Xcode installation |
546
+
547
+ ### CLI options
548
+
549
+ | Option | Default | Description |
550
+ | ------------------------ | ------- | --------------------------------------------- |
551
+ | `cli.logLevel` | trace | Log level: error, warning, info, debug, trace |
552
+ | `cli.colors` | true | Color output |
553
+ | `cli.progressBars` | true | Show progress bars |
554
+ | `cli.prompt` | true | Prompt for missing info |
555
+ | `cli.quiet` | false | Suppress all output |
556
+ | `cli.rejectUnauthorized` | true | Reject bad SSL certs |
557
+ | `cli.width` | 100 | Text wrap width |
558
+ | `cli.failOnWrongSDK` | false | Fail on SDK mismatch |
559
+ | `cli.hideCharEncWarning` | false | Hide encoding warnings |
560
+ | `cli.httpProxyServer` | - | Proxy server URL |
561
+
562
+ ### SDK options
563
+
564
+ | Option | Description |
565
+ | ---------------------------- | ---------------------------------- |
566
+ | `sdk.defaultInstallLocation` | SDK install location (OS-specific) |
567
+ | `sdk.selected` | Selected SDK version (required) |
568
+
569
+ ### Paths
570
+
571
+ | Option | Description |
572
+ | ---------------- | ------------------------------ |
573
+ | `paths.commands` | Additional CLI command scripts |
574
+ | `paths.hooks` | CLI hook scripts |
575
+ | `paths.modules` | Module search paths |
576
+ | `paths.plugins` | Plugin search paths |
577
+ | `paths.sdks` | SDK search paths |
578
+ | `paths.xcode` | Xcode installation paths |
579
+
580
+ ### Java options
581
+
582
+ | Option | Description |
583
+ | ---------------------------- | ------------------------- |
584
+ | `java.home` | JDK directory |
585
+ | `java.executables.java` | java executable path |
586
+ | `java.executables.javac` | javac executable path |
587
+ | `java.executables.jarsigner` | jarsigner executable path |
588
+ | `java.executables.keytool` | keytool executable path |
589
+
590
+ ### Genymotion options
591
+
592
+ | Option | Description |
593
+ | ----------------------------------- | ----------------------------------------- |
594
+ | `genymotion.enabled` | Enable Genymotion support |
595
+ | `genymotion.home` | Genymotion virtual machine data directory |
596
+ | `genymotion.path` | Genymotion app directory |
597
+ | `genymotion.executables.genymotion` | genymotion executable |
598
+ | `genymotion.executables.player` | player executable |
599
+ | `genymotion.executables.vboxmanage` | vboxmanage executable |
600
+
601
+ ### Application options
602
+
603
+ | Option | Description |
604
+ | --------------------------- | --------------------------- |
605
+ | `app.idprefix` | Prefix for new app IDs |
606
+ | `app.publisher` | Default publisher |
607
+ | `app.url` | Default company URL |
608
+ | `app.workspace` | Default workspace directory |
609
+ | `app.skipAppIdValidation` | Skip app ID validation |
610
+ | `app.skipVersionValidation` | Skip version validation |
611
+
612
+ ---
613
+
614
+ ## Common issues
615
+
616
+ ### Android SDK not found
617
+
618
+ ```bash
619
+ ! sdk Android SDK not found
620
+ ! targets no targets found
621
+ ! avds no avds found
622
+ ```
623
+
624
+ Solution:
625
+ ```bash
626
+ ti config android.sdkPath /path/to/android-sdk
627
+ ```
628
+
629
+ ### Xcode too old
630
+
631
+ ```bash
632
+ ! Xcode 4.3 is too old and is no longer supported by Titanium SDK 3.3.0
633
+ ```
634
+
635
+ Solution: install a newer Xcode from the Mac App Store.
636
+
637
+ ### Clean build issues
638
+
639
+ ```bash
640
+ ti clean -p ios
641
+ ti clean -p android
642
+ ```
643
+
644
+ ### ADB device issues
645
+
646
+ ```bash
647
+ adb kill-server
648
+ adb start-server
649
+ adb devices
650
+ ```
651
+
652
+ ---
653
+
654
+ ## Command quick reference
655
+
656
+ | Command | Description |
657
+ | ---------------------------- | -------------------------------------------------------------------------------------------- |
658
+ | `ti help` | Display help screen |
659
+ | `ti help <command>` | Display help for a specific command |
660
+ | `ti setup` | Run setup wizard |
661
+ | `ti setup check` | Check environment setup |
662
+ | `ti setup <section>` | Run specific setup section (quick, check, user, app, network, cli, sdk, ios, android, paths) |
663
+ | `ti info` | Display system info |
664
+ | `ti info -p <PLATFORM>` | Platform-specific info |
665
+ | `ti info -o json` | Output system info as JSON |
666
+ | `ti config` | Display/set config |
667
+ | `ti config -o json` | Output config as JSON |
668
+ | `ti create` | Create new project |
669
+ | `ti create -t module` | Create new module |
670
+ | `ti build` | Build project |
671
+ | `ti build -b` | Build only (no install/launch) |
672
+ | `ti build -f` | Force clean rebuild |
673
+ | `ti clean` | Clean build folder |
674
+ | `ti clean -p <PLATFORM>` | Clean specific platform |
675
+ | `ti project` | Get/set tiapp.xml settings |
676
+ | `ti module list` | List installed modules |
677
+ | `ti plugin list` | List installed plugins |
678
+ | `ti sdk list` | List installed SDKs |
679
+ | `ti sdk select` | Select default SDK |
680
+ | `ti sdk install` | Install latest SDK |
681
+ | `ti sdk install <version>` | Install specific SDK |
682
+ | `ti sdk uninstall <version>` | Uninstall specific SDK |
683
+ | `ti sdk update` | Check for SDK updates |
684
+
685
+ ---
686
+
687
+ ## SDK version precedence
688
+
689
+ 1. `tiapp.xml` `<sdk-version>` tag
690
+ 2. `--sdk` CLI option
691
+ 3. `app.sdk` config setting
692
+ 4. Selected SDK (`ti sdk select`)
693
+
694
+ ---
695
+
696
+ ## References
697
+
698
+ - Titanium CLI GitHub: https://github.com/tidev/titanium-cli
699
+ - Android SDK Manager: http://developer.android.com/sdk
700
+ - Xcode Downloads: https://apps.apple.com/us/app/xcode/id497799835?mt=12/