Titanium SDK 7.0.0.GA - 8 December 2017

About this release

Titanium SDK 7.0.0.GA is a major release of the SDK, addressing high-priority issues from previous releases. Highlights for this release include integration of Hyperloop in the SDK core and introduction of Appcelerator Daemon.

As of this release, Titanium SDK 6.x will not be supported one calendar year from 7.0.0.GA's release date. See Axway Appcelerator Deprecation Policy and Nominal Lifetimes documents for details.

Support for Windows 8.1 and Windows Phone SDKs has been deprecated as of SDK 6.3.0.GA and has be removed in SDK 7.0.0.GA

Appcelerator Daemon

The Appcelerator Daemon is a server that runs on the developer's computer and hosts services which power the tooling for Axway products such as Titanium SDK. The Appcelerator Daemon aims to solve tooling issues by introducing a robust, flexible, and consistent foundation for implementing product tooling. It does this by providing plugins that define services which are exposed via the built-in web server to any HTTP, WebSocket, Node.js client, or shell script. The Appcelerator Daemon is designed to be highly decoupled. All product-specific logic is run inside a plugin while the Appcelerator Daemon provides core functionality to plugins such as file system watching and spawning subprocesses.

Notice of feature and behavior Changes 

  • Integrated Hyperloop into SDK core
    • TIMOB-25058 - Begin making hyperloop part of the core SDK (and using it for SDK development)
    • TIMOB-25059 - Add Hyperloop to pre-packaged native modules listing in the SDK
    • TIMOB-25060 - Build Android hyperloop against SDK 7.0.0 / v8 5.7+ 
  • TIMOB-25459 - Android: toImage method needs parity with iOS
    • The toImage method has changed for iOS with this release. Test case:

      var win = Ti.UI.createWindow();
      var view = Ti.UI.createView({backgroundColor: 'green', width: 150, height: 150, top: 100});
      var content = Ti.UI.createView({backgroundColor: 'blue', width: 45, height: 45});
      var imageView = Ti.UI.createImageView({width: 150, height: 150, top: 300});
      win.addEventListener('postlayout', function() {
      	view.toImage(function(blob) {
  • TIMOB-23958 - Remove deprecated Python and unused files
    • Removed Python dependency
  • TIMOB-24593 - TiAPI: Update Facebook-SDKs to 4.22, support Graph v2.9 
    • Update Android Facebook SDK to 4.20.0 and iOS Facebook SDK to 4.20.2

New features 

Android platform

  • TIMOB-17340 - TiAPI: Text - Add lineHeight property to Ti.UI.Label and Ti.Ui.TextArea
    • Added Ti.UI.ATTRIBUTE_BASELINE_OFFSET support to AttributedString (controls line height in Labels, TextFields, and TextAreas)
  • TIMOB-23802 - Android N: Expose Sustained Performance API for Nexus devices
    • Added support for sustainedPerformancemode
  • TIMOB-23903 - Android: Update V8 runtime to 5.7.492.71
  • TIMOB-24510 - Android N: Implement support for Custom quick settings tiles
    • Add support for custom quick settings tiles in Android N and above
  • TIMOB-24639 - Android: Support TextInputLayout
    • Allow animated hintType to be set using attributedHintText although attributes will be ignored (Android limitation)
    • Always respect height property
    • Set EditText background color to transparent
  • TIMOB-24723 - Android: Support V8 inspector API for debugging to replace "legacy" debugger protocol
    • Added support for V8 inspector for debugging
  • TIMOB-24963 - Android: Add scrollToTop() to ScrollView
    • Added scrollToTop() to ScrollView

iOS platform

  • TIMOB-10787 - iOS: Expose UDID replacements available in iOS6
    • Added support for UDID replacement

Windows platform

  • TIMOB-24964 - Windows: Add scrollToTop() to ScrollView
    • Added scrollToTop() to ScrollView
  • TIMOB-25233 - Windows: Feature request - Ti.UI.TextField setSelection method
    • Added Windows parity for setSelection of Ti.UI.TextFields
  • TIMOB-25234 - Windows: Feature request - Ti.UI.TextField clearButtonMode
    • Added Windows parity for clearButtonMode of Ti.UI.TextFields
  • TIMOB-25235 - Windows: Feature request - Ti.UI.TextField blur method
    • Added Windows parity for blur of Ti.UI.TextField
  • TIMOB-25236 - Windows: Feature request - Ti.UI.TEXT_ALIGNMENT_JUSTIFY
    • Added Windows parity for Ti.UI.TEXT_ALIGNMENT_JUSTIFY

  • TIMOB-25237 - Windows: Feature request - Ti.UI.Picker borderColor property
    • Added Windows parity for borderColor of Ti.UI.Picker
  • TIMOB-25250 - Windows: Feature request - Ti.UI.ActivityIndicator.style/ Titanium.UI.ActivityIndicator.indicatorDiameter
    • Added Windows parity for  Ti.UI.ActivityIndicator.style and Titanium.UI.ActivityIndicator.indicatorDiameter
  • TIMOB-25303 - Windows: Feature request - Ti.UI.Picker font property
    • Added Windows parity for Ti.UI.Picker of Ti.UI.PICKER_TYPE_DATE
  • TIMOB-25345 - Windows: Prevent app from suspension
    • Implemened extended execution to prevent suspension
  • TIMOB-25400 - Update module apiversion
    • Updated apiversion to use "4" for SDK 7.0.0

Multiple platforms

  • TIMOB-14795 - TiAPI: Add "parent" property for all Ti.UI.View subclasses
    • Added support for parent property for Ti.UI.View

Community credits

We would like to thank the community for their assistance on the following tickets:

Fixed issues


  • TIMOB-6392 - Android: Ti.UI.Button text values with too many displayable characters draw improperly
  • TIMOB-9680 - Android: Textfield: The focus on textfield does not happen through textfield focus method
  • TIMOB-10070 - Android: Landscape Left/Right handling is backwards
  • TIMOB-11709 - Android: String.formatTime causes app crash when date is string.
  • TIMOB-18500 - Android: event.cancel not set properly for optionsDialog
  • TIMOB-19878 - Orientation Change is not correctly detected on Android
  • TIMOB-20439 - Android: Using camera bloats app storage
  • TIMOB-23996 - Android: Can't package android modules with NDK r13 & r14
  • TIMOB-24297 - Android native modules build is getting failed with Android NDK r13b
  • TIMOB-24537 - TI Gestures not firing even on orientation change on Android
  • TIMOB-24679 - Android: Deprecate invalid proxy constants in 7.0.0
  • TIMOB-24866 - Android: Setting a TextField's "padding" resets its alignment to left/center
  • TIMOB-24937 - Android: Default module manifest template uses wrong API version
  • TIMOB-25021 - Android: Unable to release weak global references
  • TIMOB-25051 - Android. persistentObjects leak
  • TIMOB-25160 - Android O : CLI does not detect android O device's model & shows "android device" when "appc ti info" is run
  • TIMOB-25225 - Android: Touch Id authentication issue
  • TIMOB-25241 - Android: Ti.Network.createHTTPClient log 404 : Not Found error in application log
  • TIMOB-25242 - Android: V8Exception on launch
  • TIMOB-25323 - Android: Application can crash after exiting
  • TIMOB-25324 - Android: AssetManager will release when suspended to background
  • TIMOB-25374 - borderColor not visible on Android tiSDK 6.2.2
  • TIMOB-25382 - Android: Wrong thread error in DrawerLayout when not running on main thread
  • TIMOB-25384 - Android: extendBackground extends the screen below soft system navigation
  • TIMOB-25398 - Android: Alert window does not appear with remote security policy when device is offline
  • TIMOB-25456 - Android: Crash after calling Stringify on Ti.UI.Window
  • TIMOB-25462 - Android: webview userAgent doesn't change
  • TIMOB-25467 - Android: "Ti.UI.Window.orientation" should return screen orientation in split-screen mode
  • TIMOB-25471 - TableView : java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.util.HashMap.containsKey(java.lang.Object)' on a null object reference
  • TIMOB-25487 - Android: Prevent kroll from removing null proxy object pointer
  • TIMOB-25501 - Android: App crash on receiving notification if app in background
  • TIMOB-25514 - Android: Vertical ScrollView.scrollTo() goes to wrong position when animated as of 6.2.2
  • TIMOB-25515 - Android: ScrollView.scrollTo() ignores "ti.ui.defaultunit" when animated
  • TIMOB-25525  - Android: Textfield focus issue with multiple textfields
  • TIMOB-25546 - Android: Simple Code Crash after installing Titanium SDK 7.0.0 Beta


  • TIMOB-9111 - TiAPI: Ti.Utils.base64encode() modified to not insert newlines in returned result
  • TIMOB-19040 - iOS9: Replace MPMoviePlayerController in Ti.Media.VideoPlayer with AVPlayerViewController
  • TIMOB-20404 - iOS: ProgressBar gets clipped in parent with height Ti.UI.SIZE
  • TIMOB-24994 - iOS: Remove Ti.UI.iOS.AdView
  • TIMOB-25005 - iOS: Remove Ti.UI.iPhone namespace
  • TIMOB-25024 - iOS: Remove <iphone> section from tiapp.xml
  • TIMOB-25449 - iOS: WebView content offset of 20 pixels when positioned at the top
  • TIMOB-25459 - iOS: toImage method needs parity with Android & Windows
  • TIMOB-25466 - setLargeTitleEnabled - unrecognized selector sent to instance
  • TIMOB-25491 - iOS: Ti.UI.SearchBar not slide down when set visible a view on top
  • TIMOB-25496 - iOS Document Viewer no longer allows sharing of pdf to other apps
  • TIMOB-25504 -2436h@3x Images on iPhone X are not used when -736h@3x exists
  • TIMOB-25519 - iOS: App can crash with unhandled Analytics SQLite error


  • TIMOB-23291 - Windows: Random Values while trying to decrypt value using AES encryption on device
  • TIMOB-24124 - Windows: Updating a tableView section with a headerView causes a layout issue
  • TIMOB-24832 - Windows: Unable to set a footerView or headerView on a TableView after data has been set
  • TIMOB-24858 - Windows: TableViewRow defaults to horizontal layout
  • TIMOB-24863 - Windows: TableView.filterAttribute does not work
  • TIMOB-24906 - Windows: Get an "Error device not found" error now and again when building to an Android emulator
  • TIMOB-25013 - Windows: Asserting the value returned from getPersonByIdentifier crashes an application
  • TIMOB-25027 - Windows: Remove deprecated property Ti.UI.View.enabled
  • TIMOB-25038 - (Windows) When "SearchBar.showCancel" Is used and the "X" is pressed text is removed but not "X"
  • TIMOB-25255 - Windows: Setting label.color to null causes label text to become transparent
  • TIMOB-25257 - Windows: Crash when adding tableview back to window
  • TIMOB-25275 - Windows: index property of TableView click event should be index of whole TableView and not section
  • TIMOB-25281 - Windows: Ti.Media.saveToPhotoGallery does not accept a blob
  • TIMOB-25282 - Windows: saveToPhotoGallery throws exception
  • TIMOB-25291 - Windows: Calling send with data will upgrade from a GET to a POST
  • TIMOB-25325 - Windows: Click event of Button does not provide X, Y coordinates
  • TIMOB-25326 - Windows: image property of ListItem should not overlay text
  • TIMOB-25327 - Windows: currentPage property of scrollableview.scrollend event is always 0
  • TIMOB-25460 - Windows: picker height not working
  • TIMOB-25463 - Windows: Incorrect event's source.id when in separate controller

Multiple platforms

  • TIMOB-25010 - nodejs build script: npm install failing on linux and windows
  • TIMOB-25016 - Allow node-ios-device to be installed on Windows and Linux
  • TIMOB-25176 - CLI: SDK 7 broken on node 4
  • TIMOB-25328 - CLI: Option "Enable Javascript Minification" break code from SDK >= 6.1.1.G.A



  • TIMOB-10724 - Android: Modules: remove gperf as a build dependency
    • Removed gperf as an Android build dependency on Windows 7
  • TIMOB-18441 - Android: Add CLI option to override keystore signature algorithm
    • Added --sigalg option in the CLI for overriding keystore signing algorithm
  • TIMOB-23645 - Android notification: allow to set color of background
    • Added Color to Android notification color behind icon
  • TIMOB-25353 - Android: Move Play Services into a module
    • Moved Google Play Services to ti.playservices module
  • TIMOB-25441 - Android: Support ARM64
    • Added native support for ARM64
  • TIMOB-25448 - Android: Update module build tools to compile with Java 7
    • Updated module build tools to support Java 7 language features
  • TIMOB-25483 - Android: Add FACE_UP/FACE_DOWN support to Ti.Gesture
    • Added support for FACE_UP and FACE_DOWN for Android
  • TIMOB-25498 - Android: Deprecate getEventsInYear and getEventsInMonth 
    • Deprecated getEventsInYear() and getEventsInMonth() methods from Ti.Calendar.Calendar
  • TIMOB-25510 - Android: Lower min "targetSdkVersion" from 25 to 23  
    • Due to file permission issues, this release pushed the targetSdkVersion back to 23 


  • TIMOB-23136 - iOS: Deprecate TiJScore / Kroll-Thread in SDK-Core
    • Deprecated TiJSCore. TiJSCore will be removed in SDK 8.0.0.
  • TIMOB-23495 - iOS: Support parent property on Ti.Filesystem.File
    • Added iOS parity for Ti.Filesystem.File.parent property
  • TIMOB-24327 - iOS: Implement AllowsMultipleSelectionWhenEditing and getSelectedRow in ListView
    • Implemented AllowMultipleSelectionWhenEditing property and getSelectedRows method
  • TIMOB-25195 - iOS: Improve native module template
    • Create new iOS modules in ios/ instead of iphone/
    • Use recommended build-settings like post-processing and assert-removal
    • Refactored the default readme attached to a module
    • Refactored and linted the default templates to match our clang-format
    • Prevent the README.md from the platform/ directory from being zipped
    • Added a .gitignore for default ignored files and directories
    • Updated the default license-headers to match Axway
  • TIMOB-25279 - iOS: Clean-up Titanium core, resolve all compiler warnings
    • Improved on the following Xcode 9 features:
      • Static analyser warnings
      • Fix some "missing localization" warnings by using NSLocalizedString
      • Fix unreachable code


  • TIMOB-24426 - Remove "Alert" title from alert()
    • Removed the "Alert" title from alert() function
  • TIMOB-24975 - Windows: SearchBar should show No Results text if there are no results in a search
    • SearchBar now displays "No Results" if there are no results from a search
  • TIMOB-25433 - Windows: Auto-detect requirement of cmake needing to be rerun in module build
    • Added feature that automatically builds the cmake directory if it doesn't exist. Use the --run-cmake command.

Multiple platforms

  • TIMOB-24000 - CLI: Module build should error if the apiversion in manifest does not match the SDKs apiversion
    • Added feature that the module build will announce an error if the apiversion in the manifest does not match the SDK's apiversion
  • TIMOB-25561 - CLI: Module build should error if the apiversion in manifest does not match the SDKs apiversion
    • Module build will throw an error if the apiversion is incorrect
  • TIMOB-25562 - CLI: Automatically migrate native Android modules to SDK 7 during module-build
    • Added feature that will migrate older module's apiversionminsdk, and version and create a backup of the manifest file (manifest.bak)

Known issues

  • SDK 7.0.0 does not support node.js 9
  • DAEMON-209 - Studio: iOS SDK home not found and NullPointerException
    • There's a bug in ioslib when it tries to build the list of teams. If one of the provisioning profiles does not have any teams, then the teamIds will be null. The code that builds the unique list of teams expects teams to be an array.
    • To manually fix this issue, follow these steps:
      1. Close Appcelerator Studio.
      2. Open a terminal.
      3. Stop the daemon: appc appcd stop
      4. Change directories into the appcelerator package: cd ~/.appcelerator/install/7.0.0/package
      5. Install the update for ioslib: npm install ioslib@next
      6. Reopen Studio.

API changes

New APIs

Deprecated APIs

Removed APIs