MOE Gradle Plugin Community Edition release 1.4.7

You’re doing a great work Noisyfox, love it! :slightly_smiling_face:

Many thanks for the update @Noisyfox!

1 Like

Big thanks!

We have a project still on MOE 1.4.0, on which we soon have to implement a few changes.

To work with MOE in Xcode 11, we just have to update to this version? We do not use the IDE plugin, we just use Gradle to build and run apps.

Update: I updated version, groupId, xcode project and then was able to run it. Took 10 mins :slight_smile:

Yes you need to update the Gradle plugin if you need to launch the app in simulator.

2 Likes

Hi one Question is it planed to update the MOE SDK in the near future? Or the updates all only for the Gradle Plugin?

@Noisyfox do we still need to rely on RetroLambda when updating to the newest gradle plugin?

What do you mean by “rely on RetroLambda”? MOE uses RetroLambda for combining dependencies to a single jar and backporting some Java 8 features.

The shared module does not need RetroLambda if your Android project support Java 8 however you still can’t use any feature that RetroLambda does not support.

oh okay, so I guess I have some missconceptions here :open_mouth:
I thought the ios module was the module still needing the retrolambda dependency, since the ART version MOE is running with does not support java 8.

Why is it coupled with the support of java 8 in the android project?

MOE still uses RetroLambda.

Since old android also does not support Java 8 then if you want to use Lambda in the shared module then you might also need to add RetroLambda to the shared module explicitly. But if your Android project targets version that support Java 8 then you do not need to apply RetroLambda to your shared module since it will be handled by MOE plugin.

Oh thanks for the quick reply!
I’m mainly asking, since I keep updating all my dependencies so that nothing piles up over the time of development. The project (which is also released on itunes and google play) always worked for me, but since I’ve updated the Android build tool gradle plugin, it won’t work for me anymore. There is always an error which basically states:

Warning: failed to locate parent method implementation for com/my/package/AnAbstractClass.<init>(Lcom/my/package/common/MyConstructorParameter;Lcom/my/package/MyOtherConstructorParameter;)V
Error! Failed to transform some classes

with a

NoClassDefFoundError for a class

But the compiler won’t show me the reason why it could not be transformed. Is there a flag I can use for compiling to get some more insights in what RetroLambda is trying to do here?

Hmmmm interesting… Updating Android gradle plugin should not affect MOE though…

@Noisyfox

I updated to 1.4.6 two days ago and miraculously it fixed all of my previous issues with MOE not deploying to my physical device. Today I restarted my computer, and now I’m running into the same problem as I had before. I can’t seem to deploy to my device, only simulators. I always get the error “Framework not found: MOE.” You can see a previous post I had made about it earlier this year here (Can’t build to iOS device using plugin 1.4.3 or 1.4.4).

I tried updating to 1.4.7, but the issue still remains. I feel like there was a setting that changed when I rebooted my mac but I have no clue as to what or why. I don’t want to be stuck on the original 1.4.2 plugin when you have been adding all of these cool new features, but that is the only version of the plugin that still lets me deploy to a physical device.

I tried your project in your github issue and it works fine. However as I said before in your thread MOE does not support AppleTV.

Hi @Noisyfox

At this moment I am not trying to build for Apple TV (although that would be a great plus). My issue is currently with my iPhone SE. I was able to build to it before with the original 1.4.3 plugin, and then it stopped randomly with the missing framework error. Downgrading to 1.4.2 made it work again. Trying 1.4.6 made it work, but a few days after that the error came back. Tried 1.4.7 but that didn’t fix it. Since 1.4.2 there has been some setting or option that has changed itself that won’t let me deploy to my iPhone.

Try updating your build script to use the snapshot version and see if that solves the problem:

buildscript {
    repositories {
        maven {
            url 'https://oss.jfrog.org/artifactory/plugins-snapshot'

            // Remove this block if using gradle < 5.x
            mavenContent {
                snapshotsOnly()
            }
        }
    }
    dependencies {
        classpath 'org.multi-os-engine.community:moe-gradle:1.4.8-SNAPSHOT'
    }
}

@Noisyfox Well, I updated my Mac OS and Xcode, and now I can’t build for either device or simulator. Can’t open project in Xcode either, just spins endlessly. Once this is figured out I will try the 1.4.8 snapshot version.

Hi,
i am able to run and debug my ios project on simulators, but when i connect my iPhone device and
try to run application or debug application, it is installed in my phone but never launched, when i click my app icon in my device application launch. But i can not debug.
please help !

Android studio run console stays suspended:

:moeLaunch
Waiting for iOS Device...
Launching:

My environment:
MacOS : 10.14.4
Android Studio : 3.5.2
Xcode : 11.2
Moe plugin: 1.4.7
Android studio plugin : 1.4.7
Iphone device: iphone 8 (13.3)

Hi there! :slight_smile:
Is the device unlocked? And do you have a valid developer provisioning profile? :slight_smile: You need to have one and you need to be logged in with the account in xcode in order to launch the app on physical devices.

yes device is unlocked.
in xcode my account is active, and there is valid developer provisioning profile.
infact when i open moe generated xcode project in xcode i can install and launch application

And also one more thing, with android studio same project can be run or debug to the connected device iPhone 5 (iOS 10.3).