NeoMAD 4.1 release notes

September 16, 2016

New features

iOS 10

NeoMAD 4.1 requires Xcode 8.

Three major issues have been identified with older versions of NeoMAD with iOS10 : * Calling View.setBackground() will crash the application when poping a screen containing views that call the method * App submission fails if the 40x40 icon is not provided * Signature step fails with older versions of NeoMAD

Your applications must provide a 40x40 icon for iOS.

You should rebuild your applications with NeoMAD 4.1 to fix these issues.

iOS 7 support is stopped

Because Xcode 8 is not compatible with the iOS 7, NeoMAD 4.1 now supports the three major versions : iOS 8, 9 and 10.

ATS (App Transport Security) for iOS 10

Since iOS 10, the use of ATS is required. For NeoMAD users, it means that applications that do not specify <httpAuthorizedDomains> in the URS will have to specify why all the HTTP domains are allowed in their application when publishing to the App Store. Apple may then reject the application.

To avoid that problem, only use HTTPS connection in your application. In that case declare <httpAuthorizedDomains /> in the URS. You will have no problem when submitting your application. Note that if your application already uses only HTTPS connection, you will need to declare <httpAuthorizedDomains /> if not already done to avoid the App Store justification.

If your application needs to connect to specific HTTP domains, you can specify them in the URS using the <domain> section in <httpAuthorizedDomains>. However you will still need to justify why you allow these domains when publishing in the App Store (but only for these domains).

Android 7

NeoMAD 4.1 can be used with the latest version of Android Platform (API Level 24).

ProGuard issue

NeoMAD 4.1 does not provide ProGuard tool anymore and uses the one delivered with Android SDK.

Android SDK supports Java 8 and its library is built with Java 8. The ProGuard tool provided by Android SDK is not compatible with Java 8. To fix this issue, you will have to install the ProGuard 5.0 version in your Android SDK installation if you installed the Android Platform (API Level 24). NeoMAD will throw an error at build time if the Android Platform (API Level 24) is found but with the wrong ProGuard version.

Compatibility changes

  • Some iOS API now requires to declare permissions to be used. Unlike the other platforms, these permissions require a “permission usage description”. This a localized String that must describe to the user why the permission is required. This String must be declared in the res/string/info.xml resource file in NeoMAD. Note that even if the “permission usage description” is set, you must declare the permission in the URS.
  • URS <location> tag is now deprecated. To set the permission usage description for the LOCATION permission, use res/string/info.xml

Fixes

  • Fix ApplicationDelegate javadoc: corresponding native method signatures were wrong.
  • Fix LinearLayout.addView(View, int) to throw IllegalArgumentException if the index parameter is out of bounds
  • Android:
    • Fix Res.string, Res.image and Res.raw thrown at execution time exception (ResourceNotFoundException)
  • iOS:
    • Fix HttpResponse.getDataString(): wrong encoding was used (now UTF-8 is used by default like for other platforms)
    • Fix TextField.setPadding(): calling twice the method will increment padding value.
  • WindowsPhone:
    • Fix empty icon tile when the application is pinned to the start page.
    • Fix ImageUrlLabel: use default image as error image if there is no error image set (avoid blank, same behavior as in Android and iOS)