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