Corona SDK Release Notes (Build 2016.2830)

This document describes the changes to the Corona SDK on Mac OS X and Windows, including the simulator, and iOS and Android device builds since 2015.2731


What’s New in This Release

  • Android 6.0 support.
  • iOS 9.2 support.
  • tvOS Support (beta).
  • OS X and Windows Desktop App builds (no longer beta).
  • New Console for both OS X and Windows Simulators and Desktop apps that highlight warnings and errors.
  • iOS MFi Game Controller support.
  • Windows DirectInput and XInput Game Controller support (OS X controller support was in last public release).
  • Removed the two computer limit when running the simulators under one account.
  • Miscellaneous bug fixes for all platforms.

Please note the following

  • The Mac Simulator requires OS X 10.10 or later.
  • For iOS builds (Mac), requires Xcode 7.0 or later. Note: Xcode version must match the iOS build. See more here.
  • Requires a modern graphics card that supports OpenGL 2.1 and higher.
  • For iOS the minimum version supported is 6.0.
  • For Android the minimum version supported is 2.3.3.
  • Composer GUI Beta is only supported on Mac at this time.
  • On Android phone devices running Android 6 and higher, if your app uses the READ_PHONE_STATE permission, the value returned from system.getInfo( "deviceID" ) WILL change depending on the state of the app's PHONE permission. See the documentation for more information on how to handle this breaking change from Google in your app.

New Features and Bug fixes

  • Android: Added a new Enterprise API to display an alert if build.settings/AndroidManifest.xml doesn’t contain any permissions in a requested permission group.
  • Android: Added a new framework for handling runtime permissions requests on Android 6.
  • Android: Added InputDevice “playerNumber” support on Android 5.0 or newer OS versions. (Ex: Indicates which player number light is set on an Android TV controller.)
  • Android: Added InputDevice “productName” support. (Always matches “displayName” property.)
  • Android: Added support for “key” event property “isCommandDown”.
  • Android: Added system.getInfo(“androidApiLevel”) support.
  • Android: Apps that use Expansion Files will now request Storage permission on Android 6 if needed.
  • Android: Auto-rotate setting is now respected. Casenum: 31841, 42969.
  • Android: Corona SDK now targets API Level 23 (Marshmallow).
  • Android: display.capture(), display.captureBounds(), display.captureScreen(), and media.save() will now request Storage permission on Android 6 if needed.
  • Android: display.topStatusBarContentHeight returns correct value on Android 6 devices. Casenum: 43266.
  • Android: Enterprise samples and templates now target API Level 23 (Marshmallow).
  • Android: Fixed an issue that would cause incorrect content URI generation/resolution on Android 6 and for secondary user accounts. Casenum: 43267.
  • Android: Fixed an issue with native.showPopup(“requestAppPermission”) where no feedback was provided if a permission or permission group was requested, but the requested permission or any permissions in said group are in build.settings/AndroidManifest.xml.
  • Android: Fixed an issue with system.getInfo(“deviceID”) where the returned value wouldn’t always be consistent with the state of the READ_PHONE_STATE permission.
  • Android: Fixed Corona Enterprise app crash on Android 6.0 with the “gameNetwork” and “licensing” plugins when targeting API Level 23. Casenum: 43278.
  • Android: Fixed issue where setting Android “supportsTV” to false in the “build.setting” file would inject Android TV related info into the AndroidManifest.xml anyways. (Not an issue if “supportsTV” was not in the “build.settings” file.)
  • Android: Fixed issue with SQLite where SQL transactions would fail unless you point it to a writable temp directory. (Corona now configures SQLite with a valid temp directory on startup.) Casenum: 43735.
  • Android: Fixed WebView to support 3rd party cookies from an iframe on Android 5.0 and newer devices. (Works fine on older OS versions.) Casenum: 43664.
  • Android: Location events will now request Location permission on Android 6 if needed.
  • Android: Map:getUserLocation() will now request Location permission on Android 6 if needed, and provides more error codes, being consistent with iOS.
  • Android: media.capturePhoto() and media.captureVideo() will now request Camera and Storage permissions on Android 6 if denied.
  • Android: media.selectPhoto() and media.selectVideo() will now request Storage permission on Android 6 if needed.
  • Android: Modified system.openUrl(“tel:”) to request Phone permission on Android 6 if denied.
  • Android: Notifications are now allowed through Doze mode and App Standby mode on Android 6.
  • Android: Permission-related errors are now written to the Corona Simulator’s log capture. Casenum: 44972.
  • Android: Recording:startRecording() will request Microphone permission on Android 6 if it’s denied.
  • Android: Setting the Android “supportsTV” build setting to true now injects the “android.software.leanback” into the uses-feature section of the manifest. (Not set as required by default.)
  • Android: Some pre-existing warning and errors will now appear in the Corona Simulator’s log capture.
  • Android: Updated media.playVideo() to use Android’s material or holo theme if available.
  • Android: Updated native.setActivityIndicator() to support Android’s material or holo theme if available. Casenum: 42320.
  • Core: Added ‘isAnchorClamped’ to display.setDefaults. Setting this option to false, anchor positions along either the x or y direction are not constrained to values between 0 and 1. No casenum.
  • Core: Added “isImageSheetSampledInsideFrame” display defaults, which would alter how sprite sheet frames sample textures. Setting it to true would enforce sampling inside frame with half of the texel offset.
  • Core: Added new InputAxis type “whammyBar” for Windows XInput guitar controllers.
  • Core: Added new InputDevice property “playerNumber”. Returns the player number assigned to Windows XInput controllers. Returns nil on devices that do not support this.
  • Core: Added new InputDevice types “steeringWheel”, “flightStick”, “guitar”, “drumSet”, and “dancePad”. (Only supported by Windows XInput controllers.)
  • Core: Fixed issue with nested event dispatching. Casenum: 42876.
  • Core: Fixed physics.start(noSleep) argument support.
  • Core: Lua runtime/syntax errors now log with a leading “ERROR: [Lua]”. Simulator now logs these errors in red.
  • Core: Modified Corona to log “build.settings” Lua errors in red in the console window.
  • iOS, OS X: Adding “device” property to MFI controllers for Accelerometer and Gyroscope events.
  • iOS, tvOS and OS X: ability to set arbitrary entitlements for listed platforms through build.settings.
  • iOS, tvOS, OSX: Changed key name for the menu/pause button from “mediaPause” to “menu”.
  • iOS, tvOS: Added support for iOS 9.2 and tvOS 9.2 templates.
  • iOS, tvOS: Fixed issue with copying embedded.mobileprovision file. No casenum.
  • iOS, tvOS: Fixed regression with native.showAlert. Casenum: 44293.
  • iOS, Windows Phone: Modified to return an error if os.execute() is called since it is unavailable. No casenum.
  • iOS: Check for pending resize or orientation evente when returning from other fullscreen views. Casenum: 43204, 43199.
  • iOS: Cleaned up device log for iOS devices. Casenums 44125, 44124.
  • iOS: Fixed non-scaled apps native elements positions on retina devices. Casenum: 43748.
  • iOS: Fixed link errors on CoronaCards. native.newTextField and native.newTextBox appear to work in CoronaCards (though your mileage may vary).
  • iOS: Included new event.pressure value for touch events. For touches that do not support pressure values, event.pressure is nil. Touches are normalized such that a value of 1.0 is a “normal touch”.
  • iOS: media.hasSource() now respects privacy settings for Photos and Camera where applicable.
  • Mac, iOS: Can now load fonts in the resource directory by filename.
  • OS X, iOS: Added preliminary MFi controller support; device.driver property to identify device backend.
  • OS X, Windows: Added basic Apple TV skin. No casenum.
  • OS X, Windows: Added iPad Pro skin. No casenum.
  • OS X, Windows: Always display popup error for syntax errors no matter the show runtime errors setting. No casenum.
  • OS X: Added a progress bar for device build downloads and allow the build process to be canceled. No casenum.
  • OS X: Added facility for including resource files in OS X builds. No casenum.
  • OS X: Added themes and other improvements for Corona Simulator Console windows. No casenum.
  • OS X: Allow file icons to be dropped on Corona SDK for OS X apps. No casenum.
  • OS X: Capture device console log when installing app to device. No casenum.
  • OS X: Disabled timeout that affected very long builds. Casenum: 43372.
  • OS X: Fixed a couple of issues with copying iOS apps to devices and monitoring their syslogs. Casenum: 44519.
  • OS X: Fixed an issue with Send to Device with multiple iOS and tvOS devices connected. No casenum.
  • OS X: Fixed Android keystore handling on computers using a language other than English. No casenum.
  • OS X: Fixed crash if “ideviceinstaller” is not installed. Casenum: 44920.
  • OS X: Fixed HID controller support.
  • OS X: Fixed incorrect value for system.pathForFile( "", system.ResourceDirectory ) in OS X Simulator. Casenum: 43731.
  • OS X: Fixed issue that prevented CoronaSDK apps from running on OS X 10.8. Casenum: 44893.
  • OS X: Fixed issue with building very large projects. No casenum.
  • OS X: Fixed issue with displaying extended characters in error messages and console. No casenum.
  • OS X: Fixed issue with email addresses with TLDs longer than 4 characters. Casenum: 43237.
  • OS X: Fixed issues with fullscreen transitions in OS X apps. No casenum.
  • OS X: Fixed missing provisioning profiles for OS X builds. No casenum.
  • OS X: Fixed occasional issues with extended characters in filenames and other contexts. No casenum.
  • OS X: Fixed issues with window order involving Corona Console (also added Cmd+K to clear the Corona Console). No casenum.
  • OS X: Fixed issues with certain characters in excludeFiles filenames. Casenum: 42825.
  • OS X: Fixed rare issue with querying Xcode for available iOS and tvOS Simulators. No casenum.
  • OS X: Fixed Simulator’s sketchy memory of which app store Android apps were built for. Casenum: 25838.
  • OS X: Fixed issue with truncated project name in console window. No casenum.
  • OS X: Fixed various issues with apps that default to fullscreen. Casenums 44763, 44764, 44771.
  • OS X: Fixed warning in console output when closing Welcome window. No casenum.
  • OS X: Implemented native.setProperty( “mouseCursorVisible”, value ) to control mouse cursor visibility. No casenum.
  • OS X: Implemented reset of remembered window position if Shift is held down while app starts. No casenum.
  • OS X: Improved error reporting for device builds. No casenum.
  • OS X: improvements to Xcode iOS Simulator support (including addition of iPad Pro). No casenum.
  • OS X: Added new builtin Corona Simulator Console. No casenum.
  • OS X: Propagate command line arguments to main.lua. No casenum.
  • OS X: Replaced hatSwitch with two axes hatX and hatY to be consistent across all platforms.
  • OS X: Stopped using Application Loader CLI due to Apple bug. No casenum
  • OS X: Try to match InputDevices to remove HID duplicates if device is already handled by MFi driver. No casenum.
  • Transitions: Fixed issue with continuousLoop easing.
  • tvOS: Added InputDevice.reportsAbsoluteDpadValues and InputDevice.allowsRotation properties to alter virtual behaviour of Apple TV Remote virtual axes.
  • tvOS: Fixed issue deploying tvOS apps to a device or to the tvOS Simulator. No casenum.
  • tvOS: Fixed TestFlight crash issue.
  • tvOS: Removed directional key events.
  • tvOS: Update to build with tvOS 9.1 using Xcode 7.2. No casenum.
  • Widget: Fixed issue when obtaining/rendering PickerWheel values that have been scrolled off-screen.
  • Widget: Use native.systemFont for iOS themes. This enables iOS 9’s new San Francisco font by default. No casenum.
  • Windows, OS X: always load Simulator stubs for any mentioned plugin regardless of “supportedPlatforms”. Casenum: 44476.
  • Windows: (BREAKING CHANGE) For Win32 desktop apps, the “build.settings” window.defaultViewWidth/Height and window.minViewWidth/Height settings are no longer relative to portrait. These widths/heights are now taken “as-is”, which is consistent with how OS X desktop apps use them.
  • Windows: Added a 256x256 app icon image to the Corona Shell.
  • Windows: Added a new “Corona Output Viewer” application to the Corona SDK installation. Allows you to view the print/log output of Corona made Win32 desktop apps.
  • Windows: Added ability to debug a Win32 desktop app project via the Sublime “Corona Editor” and the “Corona.Shell.exe”. (Requires adding a “build.settings” parameter “corona_sdk_simulator_path” set to the path of the “Corona.Shell.exe” under Program Files.)
  • Windows: Added browse back/forward key event support from a media keyboard and mouse.
  • Windows: Added game controller support via DirectInput and XInput.
  • Windows: Added iPad Pro app icons to “New Project” templates. No casenum.
  • Windows: Added native.get/setProperty(“mouseCursorVisible”, true/false) API used to show/hide the mouse cursor for Win32 desktop apps.
  • Windows: Added new logging window’s toolbar toggle buttons “Match Case” and “Looping Search” by showing them as highlighted when enabled.
  • Windows: Added new simulator menu item “Hardware\Back” which dispatches back key events when simulating an Android or WP8 device.
  • Windows: Added support for game controllers when simulating iOS devices.
  • Windows: Added visual themes support to the simulator’s new logging window such as “Dark” and “Blue”. (See the new drop-down toolbar button on the far right.)
  • Windows: Fixed “Custom Device” menu option where it would not always displays it after pressing the OK button. Casenum: 39792.
  • Windows: Fixed “system.orientation” to no longer always return “portrait” for Win32 apps. Now returns the orientation the app launched with. (Note that orientation events and orientation changes at runtime are not supported.)
  • Windows: Fixed bug where a Win32 desktop app launched with an app shortcut set to minimized would have its content positioned incorrectly.
  • Windows: Fixed bug where game controller related “inputDeviceStatus”, “inputAxis”, or “key” events would sometimes be duplicated/repeated.
  • Windows: Fixed crash when starting up on an “N” or “NK” edition of Windows without Media Player installed. (Introduced in build #2611.)
  • Windows: Fixed simulator to not log an “unknown skin label” warning the first time you run it.
  • Windows: Fixed targeting of old OS releases (using a very old build could cause new builds to choose wrong Android version). No casenum.
  • Windows: Fixed Win32 desktop apps to not be closeable via Alt+F4 or the Windows taskbar while the window’s [x] button is disabled. (You have to use native.requestExit() in Lua instead.)
  • Windows: Modified “Corona.Shell.exe” to only pass command line arguments proceeding the “/args” switch to the “main.lua” file.
  • Windows: Modified “Corona.Shell.exe” to support the Corona Simulator’s downloaded plugins.
  • Windows: Modified “Welcome Screen” to display each recent project’s app icon like how it works on OS X.
  • Windows: Modified events “mouse” and “touch” to not dispatch events if the mouse position hasn’t changed (was sending duplicate x/y values).
  • Windows: Modified simulator’s back key event support to only close the app when the key phase is “up” like how it works on Android and WP8.
  • Windows: Modified simulator’s logging window to remember the “Alert List” panel’s last show/hide state.
  • Windows: Modified simulator’s logging window to replace lone ‘\r’ characters that are not paired with ‘\n’ characters with the string literal “[\r]”. Prevents formatting issues in the log.
  • Windows: Modified simulator’s new logging window so that you can still interact with the UI when its receiving output faster than it can display it onscreen. (Happens when printing hundreds of text per frame.)
  • Windows: Modified the simulator new logging window to not be closable via Alt+F4 or the Windows task bar. It will close when the simulator closes.
  • Windows: Modified the simulator to leave the simulated app suspended if the user chose to “Run the App” after a Win32 desktop app build.
  • Windows: Modified Win32 desktop apps and Corona Shell to output print() and log messages to stdout immediately instead of at app close.
  • Windows: Modified Win32 desktop apps to remember their last window position and window mode.
  • Windows: Modified WP8 device simulation to only support back key events like how it works on the actual device. No longer supports keyboard keys.
  • Windows: Removed the Corona Enterprise ad banner from the simulator’s “Build Progress” dialog.
  • Windows: Replaced the Corona Simulator’s console-based logging window with a new and improved GUI-based window.
  • Windows: Significantly improved the performance of the simulator’s new logging window when receiving a large amount of text per frame.
  • Windows: Simulator’s Win32 desktop app build dialog now provides and option to “Run the App” after a successful build.
  • Windows: The simulator’s logging window and the logging window used to monitor Win32 built apps now store their last positions separately (no longer layer on top of each other).
  • Windows: Win32 desktop apps can now receive command line arguments via the “main.lua” file’s “…” launch arguments “args” field. Provided as a space character splitted string array. (A double-quoted argument containing spaces is considered as 1 string.)
  • Windows/WP8: Fixed print() messages to not produce a “\r\r\n” (ie: double carriage return) to stdout. Now correctly outputs “\r\n” for all line endings.
  • Windows/WP8: Fixed system.getTimer() and other timers to no longer be affected by system clock changes. Casenum: 7924.
  • Windows/WP8: Improved accuracy of system.getTimer() (and other timestamps) from 10–16 milliseconds to 0.1 milliseconds.
  • Windows/WP8: Optimized Corona’s logging of errors/warnings. (This change does not affect Lua print() functions.)