Few cents about my commits

bugfix #306: enabling TLSv1.2 support

|

Debugger: variable resolution for Kotlin

|

Short update on debugger support for kotlin.
Recent fixes (#1, #2) unblocked debugger for kotlin but variable resolution is still broken. It still produces following error messages on synthetic kotlin code for lambdas and collections:

[ERROR] Unable to resolve variable $i$a$1$forEach in method test, class com.test.ViewController

This happen as this variable was declared in synthetic code and this code is out scope defined in debug information for this variable.
Code for variable resolution was pending to upgrade long time ago and best case would be to have variable information without dependency to debug information.
But not so fast: it is not always possible to do it straight away without assumptions and debug information. Integer types case is described bellow.

fixing ERROR ITMS-90725: "SDK Version Issue: iOS app updates submitted to the App Store will need to be built with the iOS 11.0 SDK or later

|

check PR301 for fix.
Kees van Dieren asked for solution about the issue he has with submitting app to apple store. Issue he had is following:

ITMS-90725: SDK Version Issue - In July 2018, iOS app updates submitted to the App Store will need to be built with the iOS ‘11.0’ SDK or later, included in Xcode [9.0] or later. Make sure to update Xcode for future app deliveries. After you’ve corrected the issues, you can use Xcode or Application Loader to upload a new binary to iTunes Connect.

After checking list of possible source of problems following poped up:

$ otool -l IosEsLauncher | grep -A 4 LC_VERSION_MIN_IPHONEOS
cmd LC_VERSION_MIN_IPHONEOS
cmdsize 16
version 8.0
sdk n/a
Load command 10

sdk n/a – come-on I had it with home made SDK on windows/linux and it should not happen on Mac but it there as well.

Root case

Framework target: EXC_BAD_ACCESS on NPE in try-catch block

|

Application with RoboVM target crashes with EXC_BAD_ACCESS, investigation shows that this happens on null pointer exception (NPE) that enclosed in corresponding try-catch block and shall not break away? Already covered in Tutorial: Crash Reporters and java exceptions.
Root case is same – signals.
Solution is same – use Signals.installSignals.
Post bellow describes how to deal with it and introduces changes into framework template.

iOS 11.4 bindings

|

bugfix: breakpoints were not working in Kotlin code

|

Previous debugger maintenance allowed to build kotlin code for debug and attach debugger for it. It was even possible to step-in into kotlin code. Absence of any kotlin experience didn’t allow to test it deeper. As it kept failing on simplest case, setting of breakpoint, with following message:

No executable code found at line XX in class YYYY

Root case of this – debug plugin and debugger considered JVM code as compiled from Java file and returned .java file extension everywhere.
The fix is bellow:

bugfix #295 debugger case: crash due Kotlin data classes and broken Java classes

|

bro-gen: fixing enum typedef

|

Today bug-fix/maintenance delivers following problem, following such obj-c code:

typedef enum LogLevelValues
{
    IS_LOG_NONE = -1,
    IS_LOG_INTERNAL = 0,
    IS_LOG_INFO = 1,
    IS_LOG_WARNING = 2,
    IS_LOG_ERROR = 3,
    IS_LOG_CRITICAL = 4,

} LogLevel;

- (void)sendLog:(NSString * )log level:(LogLevel)level tag:(LogTag)tag;

is being converted into following broken Java one:

Fix for Stickers AppExtensions: fails to complete Apple Store validation

|

Event after fixing signature case apple keeps rejecting applications with Stickers app extension with message:

Invalid iMessage App - Your iMessage app contains an invalid sticker pack. The app may have been built or signed with non-compliant or prerelease tools. For more information, go to developer.apple.com.

user @sofroma investigated case and has found that Xcode additionally copies support files into Apple store package. The package was missing following files:

  • MessagesApplicationExtensionSupport/MessagesApplicationExtensionStub
  • MessagesApplicationSupport/MessagesApplicationStub

These files are part of iPhoneOS platform and available as part of Xcode at following location: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Application Support

The fix is to copy these file during packing ipa, check this commit for details.
Sadly these files are part of XCode and can’t be used on Windows/Linux in corresponding RoboVM port

Maintenance: bugs in AppExtensions, Auto signature/profile selection and bro-gen

|

Today bug-fix/maintenance delivers following:

  1. Fixed automatic profile/signature selection as it was picking first random signature with iPhone Developer|iOS Development prefix;
  2. Improved app-extension support: apple was rejecting binaries due missing provisioning profile and entitlements.
  3. Small improvements to bro-gen that can now pick string macro into constants

Details: