MOE 2.0.0-beta1 released

I’m happy to announce the new releases for MOE 2.0.0-beta1.

Breaking Changes

  • PyMobiledevice3 is now used for launching/handling real device connections. It requires elevated priviliges.
  • The class org.moe.MOE has been relocated to org.moe.core.MOE
  • The classes org.moe.GCUtil/IOSLauncher have been relocated to org.moe.ios.GCUtil/IOSLauncher
  • Gradle 7.1 is now required
  • The task moeLaunch has been removed and replaced with moe<SourceSet>Launch<Target>, where SourceSet is either “Main” or “Test” and Target is “Device” or "Simulator

General Changes

  • MOE 2.0 is now based of graalvm 25. Downloads can be found here.
  • JDWP support got added (experimental)
  • It is possible again, to launch and debug on iOS 17+ devices

SDK Changes

  • The bindings have been updated to iOS 26.1
  • MOE should now be compatible with JPMS

Gradle Changes

Idea Changes

  • The run configurations should open faster now

Known issues

  • If the Android Gradle Plugin below 7.1.3 is added to the buildscript classpath in the root build.gradle file, a java.lang.IllegalArgumentException (no error message) may be thrown when building. To workaround this, either upgrade to AGP 7.1.3 or move the buildscript block to the android build.gradle file.
  • gradle 8.4-8.8 does not work with MOE

Known limitations

  • native-image operates on the closed world assumption. Reflection and similar might not work out of box, see here for more details: Dynamic Features of Java
  • Build time is heavily increased. This will improve this: Native-Image Layers

Install / Upgrade

Simply change your build script to use the new plugin and SDK:

buildscript {
    dependencies {
        classpath group: 'org.multi-os-engine', name: 'moe-gradle', version: ‘2.0.0-beta1’
    } 
}

Don’t forget to refresh the xcode project settings through Inject/Refresh Xcode Project Settings option in Android Studio/Intellij, or with the moeUpdateXcodeSettings gradle task.

Notes

The IntelliJ Plugin Update may take a few days to be approved.