FusePowered

Corona SDK Release Notes (Build 2013.1137)

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 2013.1076.


What’s New in This Release

  • Plugins are now supported: AdMob, Carrot, GreenThrottle, InMobi, iAds, inneractive, SponsorPay andTapForTap. The following plugins are only available to Pro/Enterprise users: bit, Fortumo, Google Play game services, OpenUDID, OpenSSL and ZIP.
  • Automatic package name generation for Android/Amazon/Nook builds.
  • Android: Added Expansion File support.
  • Windows/Mac: Now allows building and signing with JDK6 or JDK7. Only 32 bit JDK supported on Windows.
  • The Runtime restrictions have been removed for Amazon Kindle Fire, Nook, and Google. All Android builds run on all devices.
  • Improved UI for logging into the simulator.
  • You are only required to log into the simulator when you first build an app.

Please note the following

  • The Mac Simulator requires OSX 10.7 and later.
  • For iOS builds (Mac), requires Xcode 4.5 or later and OSX 10.7 or later.
  • For both Mac and Window Simulator, requires Java 6 (Java 7 is now supported but upgrading to Java 7 on Windows may require reinstalling JRE6 to use CoronaSDK builds older than 2013.1093). Only 32 bit JDK supported on Windows.
  • The minimum iOS version changed from 4.3 to 5.1 to match the OS’s supported by Apple.

Known Issues

  • Mac: When using the simulator without logging in, you will be prompted to sign in if you start an app from the Open Recent menu. Starting an application by clicking on the Applications button in the Welcome Screen or using the Open menu works correctly.

New Features and Bug fixes

  • All: Fixed potential issue with plugins.
  • Android: A network request with a malformed url caused a crash. Now instead of crashing the listener is called with isError set to true.
  • Android: Added “native.systemFontBold” support. casenum: 12725, 14063
  • Android: Added ability to load the app’s icon or another app’s icon by calling display.newImage() or display.newImageRect() with URL “android.app.icon://my.package.name”. Useful for 3rd party Lua library developers.
  • Android: Added ability to trigger a local notification when a network request/download/upload finishes successfully.
  • Android: Added new system.getInfo() properties “androidDisplayXDpi”, “androidDisplayYDpi”, “androidDisplayWidthInInches”, and “androidDisplayHeightInInches”.
  • Android: Added property system.getInfo(“androidDisplayApproximateDpi”) which fetches the DPI based on the density name such as “mdpi”, “hdpi”, or “xhdpi”.
  • Android: Added property system.getInfo(“androidDisplayDensityName”) which returns a density name such as “xhdpi”, “hdpi”, “mdpi”, etc.
  • Android: Can now run apps targeting Google Play (or any app store) on Nook and Kindle Fire.
  • Android: Fixed bug web popup still acts like it is shown when pressing the Back to close it. casenum: 20912
  • Android: Fixed bug where calling display.newText() without a line wrapping width would still have its text wrapped at OpenGL’s max texture size. Modified to clip the text instead of wrapping in this case. casenum: 23371
  • Android: Fixed bug where display.save() and display.capture() does not respect alpha on device’s using GPU “PowerVR SGX 540”.
  • Android: Fixed bug where InMobi ads would continue to make network requests after exiting the app.
  • Android: Fixed bug where InMobi ads would only be displayed upon 1st launch of the app. Would not display ads on subsequent launches.
  • Android: Fixed bug where native text fields, text boxes, and web views would get misplaced on tablets running Android OS 3.x or higher after an orientation change or screen resize.
  • Android: Fixed bug where native.showPopup(“mail”) fails to attach files on Nook if the file name contains spaces. casenum: 19465
  • Android: Fixed bug where screen would be layed out wrong after the app window has been resized. Typically only happens on tablets running Android OS 3.x or higher after an orientation change, because the bottom navigation bar moves too. casenum: 11681, 13136, 13332,13590, 22064, 22357
  • Android: Fixed bug where setting up an app to use both plugins AdMob and TapForTap would cause a ClassNotFound exception at runtime.
  • Android: Fixed bug where store.target and system.getInfo(“targetAppStore”) would always return “none” as of daily build #1088, which also broke automatic download of expansion files.
  • Android: Fixed bug where system.scheduleNotification() does not work with a date table. casenum: 22211
  • Android: Fixed download success notifications so they don’t fire when the download is cancelled.
  • Android: Fixed media.playVideo pauses when the screen is locked. Casenum: 22479
  • Android: Improved quality of JPEGs created by display.save() from 50% to 90%, matching the quality used by display.capture().
  • Android: Modified display.newText() to use the system’s default font size if given a font size of zero, like Mac and iOS. (Note that this is only useful for apps that do not use dynamic content scaling because the scale factor will be applied to the default font size, making it larger than the default.)
  • Android: Modified native.showPopup(“rateApp”) and native.showPopup(“appStore”) to show the store the app was targeting in the build window. If targeting “none”, then will fallback to old behavior of selecting the store that installed the app or the first store it finds in your supported list.
  • Android: Now cancels/removes all local and push notifications when calling native.setProperty(“applicationIconBadgeNumber”, 0) to match iOS’ behavior. casenum: 22072
  • Android: Updated the Google licensing module to throw an exception if verify is called but the “com.android.vending.CHECK_LICENSE” permission isn’t set.
  • Android/iOS: Added the abiliy to set the return key, setReturnKey().
  • Core: Phyiscs – Add physics.reflectRay() to Lua.
  • Core: Phyiscs – Add support for AABB region queries in physics (physics.queryRegion).
  • Core: Phyiscs – Add support for ray casting in physics.
  • Core: Physics: Fix ray casting sort order.
  • Core: Phyiscs – Add the surface normal to the results returned from physics.rayCast().
  • Core: Added a new “resize” event that is raised when the contentWidth/Height, viewableContentWidth/Height, or contentScaleX/Y has been changed. This can happen when changing orientation by 90 degrees. Can also happen when the app has been resized (common on Android tablets) and needed by apps that use zoomEven scaling or no scaling.
  • Core: Added new system.getInfo() properties “appName”, “appVersionString”, “androidAppVersionCode”, and “androidAppPackageName”.
  • Core: Fixed bug where a global variable named “textHighlight” was being created by mistake after calling display.newEmbossedText().
  • Core: Fixed Network plugin to return a response based on raw data returned
  • Core: Moved inmobi and inneractive to plugin
  • Core: Network library to replace “null” with “nil” (fixed global variable issue)
  • Core: Take the pixel-to-meter conversion factor into account during ray casting. casenum 22591, 22593
  • Enterprise: Added ability to set up a handler for the onActivityResult() method on Android without having to derive from the CoronaActivity class. (See the CoronaActivity.registerActivityResultHandler() method and the CoronaActivity.OnActivityResultHandler interface for more details.)
  • Enterprise: Changed CoronaActivity.unregisterActivityResultHandler() method to remove a handler by reference instead of by request code. This is a safety mechanism that makes it impossible for one plugin to accidentally remove another plugin’s result handler.
  • iOS: Fix applicationStart Event Fires Twice on iOS Device - casenum 22758
  • iOS: Add system.getInfo() support for “iosAdvertisingIdentifier”, “iosIdentifierForVendor” and “iosAdvertisingTrackingEnabled” - fixes casenum 22307
  • iOS: Change the minimum supported iOS version to 5.1 (from 4.3) because we can’t support 4.3 - no casenum
  • iOS: Fixed “iosAdvertisingTrackingEnabled” which caused odd errors - casenum 23139
  • iOS: Fixed bug where an orientation event would always be raised on app startup. Should only be raised when the orientation has changed. This helps improve performance for apps that re-layout the screen after an orientation change. casenum: 10297
  • iOS: Fixed bug where system.cancelNotification() would not remove all push notifications, only local notifications. Now removes both. casenum: 22070
  • iOS: Modified code that uses “CoronaUseIOS6PortraitOnlyWorkaround” in build.settings plist section to work on all versions of the OS and not just iOS 6.0. This allows media.playVideo to autorotate in Portrait-only apps. No casenum.
  • iOS: Moved iads and inMobi libraries from core to plugin.
  • iOS: Updated network plugin to prevent crash on iOS 5.1 when destination is not reachable casenum:22721
  • iOS: Updated push notifications to support receiving “custom” fields from outside the body of the “aps” body. To preserve backwards compatibility we fall back to look for a “custom” field in the “aps” body if we did not find it as a sibling to “aps”
  • iOS: Fixed implementation of “hasBackground” for TextFields - addresses casenum 12532
  • iOS: Updating WebView to support loading an html string, it’s not currently supported on Android
  • Mac: Add console message if build fails utterly - no casenum
  • Mac: Create default package name for Android builds and prevent building into the app directory - casenum 23608
  • Mac: Set minimum OS version to 10.7 - casenum 22757
  • Mac: setReturnKey() for text field objects was returning a nil value. Instead they should just do nothing.
  • Mac: Updated the simulator to support showing the WebView. Limitations include not being able to scale the page to fit the WebView container.
  • Mac: Updating network plugin to resolve issue where network.request throws internal error casenum:23739
  • Mac: Use the correct pixel width when copying texture data from OSX to OpenGL. casenum 22695.
  • Mac: fixed implementation of “hasBackground” for TextFields - addresses casenum 12532
  • Mac: Updating WebView to support loading an HTML string
  • Mac/Windows: Added support for JDK 7 (32-bit/x86) to the Corona Simulator for Android builds. (This is used to digitally sign APKs. Note that the 64-bit versions are not supported. Corona Enterprise developers must still use 32-bit version of JDK 6, which is an Android requirement.)
  • Mac/Windows: fix issue with being unable to deauth and tidy up some other issues with the migration to com.coronalabs bundle id - no casenum
  • Mac/Windows: Fix issue with too many files break app builds - fixes casenum 22362
  • Mac/Windows: Fixed bug where the Corona Simulator would misplace the iOS status bar when displaying it in an orientation that the app did not support or if the app was set up for letterbox or zoomEven scaling. casenum: 14410
  • Mac/Windows: Fixed Corona Simulator bug where “display” properties contentWidth/Height, viewableContentWidth/Height, contentScaleX/Y, contentCenterX/Y, and screenOriginX/Y would be wrongly swapped when rotating to an orientation that the app does not support. casenum: 1312, 13037
  • Widget 2.0: Adds “tap” event to tableView rows. Fixes casenum 22246.
  • Widget 2.0: Adds method scrollToIndex to pickerWheels. Fixes casenum: 22360
  • Widget 2.0: Adds tableView method object:getNumRows() which returns the number of rows in a tableView. No Casenum
  • Widget 2.0: Adds tableView row method row:setRowColor() which allows you to set the row’s default/over color within your onRowTouch function. No Casenum
  • Widget 2.0: Button:setLabel() keeps adding labelYOffset to label position. Fixes casenum: 22445
  • Widget 2.0: Buttons with height less than or equal to 30 with no background image have no center graphic. Fixes casenum: 21705
  • Widget 2.0: Fix incorrect setFillColor function for textOnly buttons.
  • Widget 2.0: Fixed issue where stepper couldn?t be incremented/decremented correctly after changing it’s reference point.
  • Widget 2.0: Fixed issue where stepper couldn?t be incremented/decremented correctly after deep nesting in groups
  • Widget 2.0: Fixed issue where tabBar buttons labels could not be omitted nor nil, was causing a runtime error. Fixes casenum 22149
  • Widget 2.0: Fixed issue with tableView categories not passing isCategory to the rowRender function. Fixes casenum: 22373
  • Widget 2.0: Fixes a crash which could occur after an object inserted into a scrollView was inserted into another group then back into the scrollView then removed. Fixes casenum: 22436
  • Widget 2.0: Fixes gradient issue with widget buttons using 9 slice (default theme). Also fixes issue where setting a 9 slice button’s alpha to less than 1 would result in graphical issues. Fixes casenum 21914
  • Widget 2.0: Fixes issue where a segmented control with a left value of more than 50 pixels would result in some segments from being unable to be pressed. Casenum 22405
  • Widget 2.0: Fixes issue where a tableView’s row’s separating line would also be added to it’s left/right and top edges. Fixes casenum: 22943
  • Widget 2.0: Fixes issue where default tab button would not be highlighted if using image sheet buttons. Fixes casenum: 22609
  • Widget 2.0: Fixes issue where on/off switch .isOn state was not getting set after calling object:setState() without a visual animation. Fixes casenum: 22772
  • Widget 2.0: Fixes issue where PickerWheel right alignment of column text was not working & multiple picker wheels were causing runtime errors. Fixes casenum: 23160
  • Widget 2.0: Fixes issue where positioning a slider after creation would make the slider unresponsive to touch events on it’s handle. Fixes casenum 22458.
  • Widget 2.0: Fixes issue where scrolling a tableView past it’s limits then releasing the touch within the tableView bounds would throw a setFillColor error. Casenum’s, 23193, 23218
  • Widget 2.0: Fixes issue where scrollView event.target was not returning the scrollView object, but instead it’s _view property. Fixes casenum 22241
  • Widget 2.0: Fixes issue where ScrollView method object:scrollToPosition() did not cancel previous scrolling momentum. Fixes casenums 22580, 23084
  • Widget 2.0: Fixes issue where setFillColor didn’t apply a fill color to a widget buttons “overFile” image. Fixes casenum: 23182
  • Widget 2.0: Fixes issue where Stepper Widget did not factor in it’s parent groups offset. Fixes casenum 21839
  • Widget 2.0: Fixes issue where tabBar size error handler was not being called. Fixes casenum 22465
  • Widget 2.0: Fixes issue with deleteRow not removing the row from the row’s table. Casenum 22848
  • Widget 2.0: Improves tableView performance both on initial creation and when scrolling. No Casenum.
  • Widget 2.0: Scrolling multiple columns in pickerView reads the column height incorrectly.
  • Widget 2.0: TableView function scrollToIndex has no onComplete method. Fixes casenum 22324
  • Widget 2.0: Enforce row touches not to be permitted while the tableview is still moving. Casenum: 22888
  • Widget 2.0: Fixes issue where the tableView noLines parameter does not always work.
  • Widget 2.0: Fixed performance bug. (However, no longer attempts to load your own implementation of the widget libraries in the “widgetLibrary” subdirectory by default. You must override the widget library explicitly via “package.preload” as shown in GitHub’s sample code.)
  • Windows: Smooth Simulator flow by postponing login until a build is requested - no casenum
  • Window: Added white rectangle placeholder for native TextBoxes and TextFields in simulator.
  • Window: Create default package name for Android builds and prevent building into the app directory - no casenum
  • Window: Ctrl+B accelerator for “Build” shortcut - no casenum
  • Window: Fixed bug where Corona fails to read the Android keystore after doing a Java update from version 6 to 7. (Caused by missing “msvcr100.dll” in the Windows system directory required by the JVM.) casenum: 23222
  • Window: Updated Corona Simulator’s OpenSSL library from version 1.0.0.7 to 1.0.1.5, matching the version that the OpenSSL plugin uses.