# Titanium SDK 9.0.0.GA - 18 March 2020
# About this release
Titanium SDK 9.0.0 is a major release of the SDK, addressing high-priority issues from previous releases; introducing some breaking changes; and removing a number of long-deprecated APIs.
As of this release, Titanium SDK 8.x will not be supported one calendar year (2021-03-18) from 9.0.0's release date. See Axway Appcelerator Deprecation Policy (opens new window) and Nominal Lifetimes (opens new window) documents for details.
❗️ Warning
With the release of Titanium SDK 9.0.0, we will no longer support Node.js 8.X. Node 10.13.0 will be the new minimum supported version with SDK 9.0.0.
❗️ Warning
Deprecation Notice: The next major release of the Titanium CLI, version 6.0.0, will no longer support plugins and hooks for commands other than "appc ti clean", "ti clean", "appc run", and "ti build". Titanium CLI v6 will have a new plugin system with a new hook system and it will be incompatible with Titanium CLI v5 plugins and hooks. Please refer to TIMOB-27233 (opens new window) and TIMOB-27255 (opens new window) for more information.
❗️ Warning
With the release of Titanium SDK 9.0.0, Windows platform will no longer be supported and has been removed from distribution in the SDK. Customers on Pro and Enterprise plans may continue to request critical fixes on SDK 8.x releases until August 18, 2020.
# Community Credits
Sergey Volkov
[ TIMOB-26662 (opens new window) ] - Android. TableViewRow bugs ( 19f532b (opens new window) )
add "repeatable" property on methods parameters (ea0da79 (opens new window))
fix optional parameters on "timers" methods (8a00014 (opens new window))
split interface and property definition for console and JSON (958a6a3 (opens new window))
fix Ti.UI.TableView.setData argument (70c16f7 (opens new window))
fix PickerColumn parent class (0a55a4b (opens new window))
remove duplicate events from Ti.UI.Tab (f618aeb (opens new window))
fix Ti.UI.iOS.ApplicationShortcuts.getDynamicShortcut (a841846 (opens new window))
fix Ti.Platform.openURL parameters (17f258d (opens new window))
fix Ti.UI.Slider.value type (2663d7d (opens new window))
fix Ti.Media.audioSessionCategory type (21bca1d (opens new window))
fix type of "services" property (410aee2 (opens new window))
add missing types for events properties (5b7732f (opens new window))
remove "optional" key from event property (b1c0967 (opens new window))
add missing types for events properties (76cd92a (opens new window))
add Ti.UI.View.id (opens new window) property (b295e63 (opens new window))
mark as optional property "animated" of AnimationOption (aee1bdd (opens new window))
remove duplicate prop "category" from "localnotificationaction" (163065a (opens new window))
Hans Knöchel
add generated .cxx directory to .gitignore (37b446c (opens new window))
[ TIMOB-27441 (opens new window) ] - do not log Ti.App events (2c84e30 (opens new window))
Giorgio Mandolini
- [ TIMOB-27522 (opens new window) ] - webview onlink is now called only on link activated (aedd2aa (opens new window))
Michael Gangolf
[ AC-6444 (opens new window) ] - optimize all pngs (#11321 (opens new window)) (e563e28 (opens new window))
[ TIMOB-13286 (opens new window) ] - add single/doubletap to scrollview (0326b7e (opens new window))
David Bankier
- [ TIMOB-23281 (opens new window) ] - search bar color ignored on ios 13+ (0aa9b36 (opens new window))
Mathias Lykkegaard Lorenzen
- make event argument in fireEvent optional (0250df0 (opens new window))
# Bug Fixes
# Multiple platforms
[ TIMOB-20141 (opens new window) ] - Global scope variables can be shared with CommonJS modules
[ TIMOB-27522 (opens new window) ] - WebView: onlink and beforeload are not consistent across platforms
[ TIMOB-27632 (opens new window) ] - API: Review uncaughtException event property parity
# Android platform
[ TIMOB-13286 (opens new window) ] - Android: ScrollView: SingleTap event does not get fired.
[ TIMOB-26662 (opens new window) ] - Android. TableViewRow bugs
[ TIMOB-27325 (opens new window) ] - Android: Adding
within "tiapp.xml" file's block creates invalid entry in "AndroidManifest.xml" [ TIMOB-27406 (opens new window) ] - Android: Cannot select content from downloads ( c2d89d4 (opens new window) )
[ TIMOB-27420 (opens new window) ] - Android: ImageView.toImage() does not return the correct Ti.Blob
[ TIMOB-27496 (opens new window) ] - do not modify original ListView proxy (e75b514 (opens new window))
[ TIMOB-27527 (opens new window) ] - Android: Typing into console in Chrome DevTools cause crash
[ TIMOB-27530 (opens new window) ] - Android: UI glitches out when using 'applyProperties' with Scroll View Touch Listeners
[ TIMOB-27602 (opens new window) ] - softRestart() must account for snapshots (62a603d (opens new window))
[ TIMOB-27606 (opens new window) ] - amend load app info order (38ea44b (opens new window))
[ TIMOB-27627 (opens new window) ] - Android: Prevent snapshot failure from breaking build
[ TIMOB-27633 (opens new window) ] - Android: Additional parameters in require cause app to crash ( 612afd7 (opens new window) )
[ TIMOB-27684 (opens new window) ] - Android: Cold-start launch animation may occur twice ( 135e3dc (opens new window) )
[ TIMOB-27705 (opens new window) ] - Android: Can't set versionCode via AndroidManifest.xml as of 9.0.0
[ TIMOB-27706 (opens new window) ] - Android: Native modules having uppercase "name" are excluded from build on case-sensitive systems ( 8a906c7 (opens new window) )
[ TIMOB-27720 (opens new window) ] - Android: Error building SDK if python 3 is installed
[ TIMOB-27723 (opens new window) ] - Android: Build fails and emulator does not launch
[ TIMOB-27739 (opens new window) ] - Android: Location permissions not auto-added when using Ti.Geolocation API as of 9.0.0
[ TIMOB-27746 (opens new window) ] - Android: Apps built with 9.0.0 can't upload to Firebase App Distribution when including certain modules ( 476ac79 (opens new window) )
Android: Old "ti.playservices" modules crash in 9.0.0 when calling makeGooglePlayServicesAvailable() ( c194ecf (opens new window) )
[ TIMOB-27750 (opens new window) ] - Android: CLI fails to recognize avd emulator is booted when it starts it
add extension to encrypted assets (bf8a6bf (opens new window))
avoid infinite recursion in tab/tabgroup toJSON() (7280fcc (opens new window))
avoid recursion, properties beginning with _ in toJSON() (f5b6561 (opens new window))
can't set versionCode in manifest as of 9.0.0 (a69f6b6 (opens new window))
fix scroll view's layout resizing with children (5723b11 (opens new window))
fix support for Java 8 in Kotlin (2287e83 (opens new window))
getCurrentPosition() compatibility with some Samsung devices (fa5866a (opens new window))
improve reliability of fused location lib detection (b8cc24a (opens new window))
location permission not auto-added as of 9.0.0 (db56070 (opens new window))
prevent snapshots from failing build (40bd1d9 (opens new window))
remove deprecated contacts methods (7e0a46a (opens new window)) (7caecb8 (opens new window))
specify default inspector context (c29960d (opens new window))
use correct blob for toImage() (f07e012 (opens new window))
# iOS platform
[ TIMOB-7311 (opens new window) ] - iOS: Change Ti.Network.BonjourService/BonjourBrowser to take a Ti.Network.Socket.TCP object
[ TIMOB-27076 (opens new window) ] - iOS: App freezes after calling Ti.Network.BonjourService.publish method
[ TIMOB-27106 (opens new window) ] - iOS: MusicLibrary compilation error in 8.0.1.GA
[ TIMOB-27159 (opens new window) ] - iOS: Ti.UI.WebView cannot load html files from cache (dd7b319 (opens new window))
[ TIMOB-27350 (opens new window) ] - iOS: httpClient returning image response as undefined. (c95ddb3 (opens new window))
[ TIMOB-27441 (opens new window) ] - iOS: App should not log Ti.App events
[ TIMOB-27460 (opens new window) ] - iOS: tintColor not working for TabbedBar/ButtonBar on iOS 13
[ TIMOB-27462 (opens new window) ] - iOS - NavBar properties not working anymore after 8.2.0.GA
[ TIMOB-27480 (opens new window) ] - setting last index of tabbedBar after initialization not work (5fbe782 (opens new window))
[ TIMOB-27484 (opens new window) ] - update to core-js 3 (ffa4cef (opens new window))
[ TIMOB-27528 (opens new window) ] - iOS: uncaught exceptions in event listeners don't show error modal
[ TIMOB-27630 (opens new window) ] - iOS: Use correct babel-preset-env target (c4a998a (opens new window))
[ TIMOB-27647 (opens new window) ] - iOS: Cannot read property 'sort' of undefined when building using Xcode 11.3
[ TIMOB-27648 (opens new window) ] - iOS: Cannot build a project to iOS device with latest master build
[ TIMOB-27756 (opens new window) ] - watchOS: Including watchOS framework causing build error
Abnormal behaviour in <=iOS 10 versions with >=8.1.0.GA SDK - behaviour of toString function of TiBlob fixed (e63b30e (opens new window))
iOS: Abnormal behaviour in iOS 13 while playing video in fullscreen (6a5664b (opens new window))
iOS: “don’t allow” in push notification dialog triggering success callback (e835456 (opens new window))
added proper condition to import MediaPlayer (3943012 (opens new window))
handle when new proxies are created with dictionary arguments (2c8e2ac (opens new window))
handle when throwing new obj-c proxy error without subreason (3e2934b (opens new window))
navBar properties not working properly with extendEdges set to Ti.UI.EXTEND_EDGE_TOP (d673c36 (opens new window))
proper macro used for wrapping code (5bb63c5 (opens new window))
remove deprecated contacts methods (207b4ab (opens new window))
remove deprecated contacts methods (e8c4b43 (opens new window))
remove deprecated tab blur/focus events (f5d0bbe (opens new window))
remove deprecated tabgroup unselected/selected events (74f1134 (opens new window))
remove deprecated TextField padding properties (337ee8f (opens new window))
remove deprecated Ti.Media methods (e8fff19 (opens new window))
remove deprecated Ti.Media methods (b3bd05e (opens new window))
remove deprecated UI appearance properties (b8c1f84 (opens new window))
remove references to Ti.Contacts methods that are removed (440e9cc (opens new window))
tintColor not working for TabbedBar in iOS 13 (ec6fbf6 (opens new window))
when firing events to new proxies, fill in type/source (e56abfc (opens new window))
# Features
# Multiple platforms
[ TIMOB-27688 (opens new window) ] - TiAPI: Clean up apidocs to use common types
[ TIMOB-27740 (opens new window) ] - TiAPI: Extend removal of deprecated get/set property methods from 9.0.0 to 10.0.0
[ TIMOB-27631 (opens new window) ] - Optimize png files
[ TIMOB-27639 (opens new window) ] - Documentation for events' properties
[ TIMOB-27167 (opens new window) ] - CLI: Move Alloy optimizations into core SDK build (c21f77c (opens new window))
# Android platform
[ TIMOB-27685 (opens new window) TIMOB-27298 (opens new window) TIMOB-27297 (opens new window) ] - update hyperloop for gradle (13f78c4 (opens new window))
[ TIMOB-24517 (opens new window) ] - Android: Add APK signature scheme v2 support
[ TIMOB-25896 (opens new window) ] - Android: Add Kotlin language support for modules
[ TIMOB-26434 (opens new window) ] - Android: Support building "app bundles" ( 5d93fea (opens new window) )
[ TIMOB-27696 (opens new window) ] - Android: Add "gradle.properties" support to app builds
[ TIMOB-19300 (opens new window) ] - Android: Change to use Gradle instead of Ant for build
[ TIMOB-27178 (opens new window) ] - Android: Update V8 runtime to 7.8 (9006b4d (opens new window))
[ TIMOB-27687 (opens new window) ] - Android: Update V8 runtime to 7.9
[ TIMOB-27242 (opens new window) ] - Android: Remove getter and setter warnings
[ TIMOB-27297 (opens new window) ] - Android: Allow Hyperloop to access Titanium's core Java classes
[ TIMOB-27298 (opens new window) ] - Android: Hyperloop should allow access to a Java inner class within an inner class
[ TIMOB-27472 (opens new window) ] - Android: Add Java 8 support (5ce5e72 (opens new window))
[ TIMOB-27487 (opens new window) ] - Android: Build x86_64 module libraries
[ TIMOB-27718 (opens new window) ] - Android: Log build warnings if "res" files have invalid names (e7df669 (opens new window))
[ TIMOB-27724 (opens new window) ] - Android: Build "ti.map" module with gradle
[ TIMOB-27725 (opens new window) ] - Android: Build "ti.facebook" module with gradle
[ TIMOB-27726 (opens new window) ] - Android: Build "ti.identity" module with gradle
[ TIMOB-27727 (opens new window) ] - Android: Build "appcelerator.encrypteddatabase" module with gradle
[ TIMOB-27728 (opens new window) ] - Android: Build "cloudpush" module with gradle
[ TIMOB-27729 (opens new window) ] - Android: Build "ti.playservices" module with gradle
[ TIMOB-27730 (opens new window) ] - Android: Build "ti.webdialog" module with gradle
[ TIMOB-27737 (opens new window) ] - Android: Build "analytics" module with gradle
Android: Update "titanium-verify" for SDK 9.0.0 (e812d00 (opens new window))
[ TIMOB-27685 (opens new window) ] - Android: Update hyperloop module to support gradle dependencies
[ TIMOB-27686 (opens new window) ] - Android: Auto-download build system dependencies via gradle (57a6b49 (opens new window))
[ TIMOB-27752 (opens new window) ] - Android: Exclude x86 and x86_64 architectures in "production" builds by default
[ TIMOB-25240 (opens new window) ] - Android: Improve incremental build times
[ TIMOB-25726 (opens new window) ] - Android: Ensure device's installed Google Play Services is available/updated on app startup
[ TIMOB-25889 (opens new window) ] - Android: Emulator builds should not add additional permissions
[ TIMOB-26472 (opens new window) ] - Android: Replace support libraries with AndroidX (0558c28 (opens new window))
# iOS platform
[ TIMOB-25847 (opens new window) ] - iOS: Accessibility support for Dynamic Type ( 8045620 (opens new window) )
[ TIMOB-25032 (opens new window) ] - iOS: Resolve asset-catalog hashes back to real names, fail build when detecting duplicates
[ TIMOB-26837 (opens new window) ] - iOS: "extendSafeArea" false should not allow status bar to overlap content on iOS 10 and older
# BREAKING CHANGES
# Multiple platforms
[ TIMOB-27605 (opens new window) ] - Drop support for Node 8, Make Node.JS 10.13 new minimum ( f35cf0e (opens new window) )
[ TIMOB-27650 (opens new window) ] - Remove deprecated modules from SDK distribution (ti.touchid and ti.safaridialog)
[ TIMOB-25578 (opens new window) ] - Remove deprecated Geolocation values, only use new ones (3d32e33 (opens new window))
# Android platform
[ TIMOB-26201 (opens new window) ] - Removed Ti.Contacts requestAuthorization method (in favor of requestContactsPermissions)
[ TIMOB-26201 (opens new window) ] - Removed Ti.Contacts getPersonByID method (in favor of getPersonByIdentifier)
[ TIMOB-26201 (opens new window) ] - Removed the create, destroy, pause, restart, resume, start, and stop events on Ti.Android.Activity (use callback properties) (0221467 (opens new window))
[ TIMOB-27618 (opens new window) ] - Removed Ti.UI.WebView.onStopBlacklistedUrl event. Please use blacklisturl event instead (85b32d8 (opens new window))
[ TIMOB-26201 (opens new window) ] - Removed deprecated Ti.UI.Window.android:* events (f01055c (opens new window))
[ TIMOB-26201 (opens new window) ] - Removed deprecated webview error event properties: errorCode and message (5144ac9 (opens new window))
[ TIMOB-26201 (opens new window) ] - Removed deprecated tcp error callback errorCode property (7e405aa (opens new window))
[ TIMOB-26201 (opens new window) ] - Removed deprecated stream callback properties (4b48db8 (opens new window))
[ TIMOB-26201 (opens new window) ] - Removed the LINKIFY_* constants living in Android namespace (7c88912 (opens new window))
[ TIMOB-27758 (opens new window) ] - Android: Modules with AARs in "lib" directory should trigger a build failure in 9.0.0
# iOS platform
[ TIMOB-27497 (opens new window) ] - Remove support of Xcode 8 (d5ede39 (opens new window))
[ TIMOB-27641 (opens new window) ] - Drop support for iOS 9
[ TIMOB-26201 (opens new window) ] - Removed Ti.UI.TextField paddingLeft and paddingRight properties (in favor of padding.left and padding.right)
[ TIMOB-26201 (opens new window) ] - Removed Ti.Media requestAudioPermissions method (in favor of requestAudioRecorderPermissions)
[ TIMOB-26201 (opens new window) ] - Removed Ti.Media requestAuthorization and requestCameraAccess methods (in favor of requestAudioRecorderPermissions and requestCameraPermissions)
[ TIMOB-26201 (opens new window) ] - Removed Ti.Contacts requestAuthorization method (in favor of requestContactsPermissions)
[ TIMOB-26201 (opens new window) ] - Removed Ti.Contacts getGroupByID and getPersonByID methods (in favor of getGroupByIdentifier and getPersonByIdentifier)
[ TIMOB-26201 (opens new window) ] - Removed Ti.UI.Tab blur/focus events in favor of selected/unselected
[ TIMOB-26201 (opens new window) ] - Removed Ti.UI.TabGroup selected/unselected events in favor of focus/blur
[ TIMOB-26201 (opens new window) ] - Removed the BLEND_MODE_* constants on Ti.UI.iOS namespace (use constants on Ti.UI namespace) (3c2a0ec (opens new window))
[ TIMOB-26201 (opens new window) ] - Removed Ti.UI.TextArea, Ti.UI.TextField appearance property (in favor of keyboardAppearance)
[ TIMOB-26201 (opens new window) ] - Removed deprecated Ti.Media.cameraAuthorizationStatus property (cbf994e (opens new window))
[ TIMOB-26201 (opens new window) ] - Removed deprecated ipad popover properties: height, width, leftNavButton and rightNavButton (14cd341 (opens new window))
[ TIMOB-26201 (opens new window) ] - Removed deprecated tcp error callback errorCode property (6f4814d (opens new window))
[ TIMOB-26201 (opens new window) ] - Removed deprecated stream callback properties (f4de7a9 (opens new window))
[ TIMOB-27619 (opens new window) ] - Remove Ti.Network.createTCPSocket, use Ti.Network.Socket.TCP in it's place. ( 9647181 (opens new window) )
[ TIMOB-27619 (opens new window), TIMOB-27076 (opens new window) ] - Ti.Network.BonjourService methods have become asynchronous. Use optional callback arguments or event listeners to react to results.
[ TIMOB-26201 (opens new window) ] -Removed the updateLayout(), startLayout() and finishLayout() methods on Ti.UI.View (54e2eeb (opens new window))
# Known Issues
# Android
[ TISTUD-9204 (opens new window) ] - Android: Module packaging disabled in Studio for module created with SDK supporting gradle
- For now, Android modules can be packaged from the command line using
appc run -p android
from theandroid
folder of your module
- For now, Android modules can be packaged from the command line using
# SDK modules versions
# Android and iOS
Module | Android version | iOS version |
---|---|---|
9.0.0 | 7.0.1 | |
ti.cloudpush | 7.0.0 | n/a |
ti.map | 5.0.1 | 3.3.0 |
ti.webdialog | 2.0.0 | 1.1.0 |
ti.playservices | 17.1.1 | n/a |
ti.identity | 3.0.1 | 1.1.0 |
urlSession | n/a | 2.2.0 |
ti.coremotion | n/a | 2.0.1 |
ti.applesignin | n/a | 1.1.1 |
# CommonJS
Module | Version |
---|---|
ti.cloud | 3.2.11 |
# Hyperloop
Module | Version |
---|---|
hyperloop | 5.0.0 |