App Store validation: Multiple executable segments

We’ve been submitting an MOE app to the Apple App Store for a few years. Starting Oct '23, Apple is now sending us an email warning us of “ITMS-90999: Invalid executable” (message below) with each submission. We’re still able to submit the build, but are worried that this is leading to a change in Apple policy that will block these builds. It would be a significant effort for us to move off of MOE at this time.

Has anyone seen this issue? Have you been able to take any action on it?

I’ve tried updating the MOE_SEGPROT flags in the build script to remove the executable bit, which results in a build that passes validation but crashes when the app launches. I assume the crash makes sense, since the code is trying to jump into the Android VM that’s contained in the 2nd now-not-executable block.

It looks there are a couple of commits to the ART GitHub project related to this, but I haven’t been able to find any other reference.

Thanks for any help you can provide,

Matt Cosand


Dear Developer,
We identified one or more issues with a recent delivery for your app, “” 1.7.3 (1). Your delivery was successful, but you may wish to correct the following issues in your next delivery:
ITMS-90999: Invalid executable - The executable in “” contains multiple segments with the executable permission bit set when it should only contain one.
After you’ve corrected the issues, you can upload a new binary to App Store Connect.
Best regards,
The App Store Team

Hi,
I’m aware of this issue, and I’m currently working on it.
However, the fix is sadly not trivial and my time is currently limited. I intend to fix it in the next release.

Hi @mcosand ,
A new MOE 1.10.0-SNAPSHOT has been released, that should address the “Invalid executable - The executable contains multiple segments with the executable permission bit set when it should only contain one” issue.
If you could verify that it works as expected, it would be highly appreciated.
When updating “./gradlew moeUpdateXcodeSettings” needs to be run.
As a note, this is a snapshot build, the x86_64 iOS simulator might be broken on that.

2 Likes

Nice fix @Berstanio!

When I use 1.10.0-SNAPSHOT with the calculator sample, the validation warning does go away.

We’ve been having trouble migrating our prod app from 1.8.2 to 1.9.0. I’ll start working on rebuilding the project with the 1.10 snapshot.

Thanks so much for the effort! Definitely relieves a lot of stress around here.

Matt

I was able to get our production app to build with 1.10.0-SNAPSHOT, and XCode Archive / Validate stops reporting the Multiple Segments warning. We’re in the middle of a stabilization/release cycle, but are eager to pick up the final 1.10.0 build for our next release cycle.

Thanks again for the help!

That’s great to hear, thank you for testing!