TestFlight rejected with "ITMS-90426: Invalid Swift Support" after upgrade to expo 41

Good Day,

After I upgrade an app from Expo 40 to Expo 41, it gets rejected by TestFlight. A few minutes after shipping the build artifact with Transporter, I get an email with the following message:

ITMS-90426: Invalid Swift Support - The SwiftSupport folder is missing. Rebuild your app using the current public (GM) version of Xcode and resubmit it.

I would greatly appreciate any pointers to what I’m doing wrong.
FWIW, the local testing with the Expo Go app works and building an image with an ad-hoc provisioning profile and putting it on the device works.

Thanks!

4 Likes

Hey @felixwyss, how are you building your binary that you submitted to TestFlight?

Hi @adamjnav – Thank you for responding! I’m building with expo build:ios --type archive, download the artifact from Expo site, and then upload it with Transporter. It get the failure after an expo upgrade to Expo 41.

you should upload to the latest version of xcode on your machine, or use eas submit to submit. transporter frequently gives strange errors when you aren’t using the latest xcode version

Hi @notbrent – I am using the latest version of Transporter. There was an update on April 15th (version “1.2.1 (1255)”). Note that it works with Expo 40 artifacts. I reverted the code back to Expo 40. Building and submitting works as before. I do not see an update of Xcode. The version I have installed is: 12.4 (12D4e).

i just built this sdk 41 app with expo build:ios -t archive then dragged it into transporter and chose “verify” from the “…” menu:

i then pressed deliver to upload it

processing took like 10 minutes

finally it is ready for testing


it could have been an intermittent bug on apple’s end. the way managed app builds with expo build work, your app native code is basically identical to mine, so it’s unlikely that the issue is on our end.

Hi @notbrent – Thank you for testing this. I just tried again and still get the same issue :frowning: The “verify” in Transporter is successful, delivery is successful, but then I get the “ITMS-90426: Invalid Swift Support” email.

very strange. i’m not sure i’ll be able to get any useful info from it, but can you share your package.json?

Hi @notbrent – I really appreciate the kind offer. What’s the best way to provide it? Posting in here seems messy.

you can post it to a gist and share the link here

@notbrent – Great idea! Here it is: TestFligtErrorAfterUpgradeToExpo41.md · GitHub. Thanks!

could you try rebuilding and then submitting your app through eas submit? just trying to remove some variables here, and if you were to use eas submit we’d at least now your computer has nothing to do with it. i’m a bit puzzled.

@notbrent – I have not used EAS yet, so that might take a little. However, looking at the build logs (which seem to be a new feature, very nice!), I see a whole bunch of red messages logged with [stderr] prefix. For example:

[stderr] _floatsignTemp/Payload/ExpoKitApp.app/Frameworks/libswiftAccelerate.dylib: replacing existing signature
[stderr] _floatsignTemp/Payload/ExpoKitApp.app/Frameworks/libswiftAccelerate.dylib: signed Mach-O universal (armv7 armv7s arm64) [com.apple.dt.runtime.swiftAccelerate]

There are tons more like this in the Expo 41 build. In the Expo 40 build there are only two lines:

[stderr] _floatsignTemp/Payload/ExpoKitApp.app: replacing existing signature
[stderr] _floatsignTemp/Payload/ExpoKitApp.app: signed app bundle with Mach-O universal (armv7 arm64) [redacted]

I updated the Gist with the full list.

i wouldn’t put much weight on stderr actually representing errors, this is a commonly abused output stream for any sort of warning or info message. this is commonly done so that the output won’t interfere with stdout. for example, most loading terminal loading spinners will use stderr. the output there looks expected to me.

for eas - you should be able to just do your build as normal with expo build and then just use eas submit to upload it as described here. (you can install eas-cli with npm – npm i -g eas-cli)

@notbrent – That did not help either. Unfortunately :frowning:

any chance you can share your project with me on github? i’m brentvatne there

@notbrent – Sent invite to collaborate.

thanks! i will not be able to investigate this week as i am ooo on holiday but will be back at the start of may. it could also be valuable to get in touch with apple to see if she can share more information. cc @charliecruzan @bycedric if you have time to follow up here

the same thing. after upgrading to sdk 41 i get from app store connect ITMS-90426: Invalid Swift Support.
thats really bad. please if someone can help

So i tried everything and only with eas-cli works. Ist expensive but you can do your job with that. Expo build give the sane error i think that the problem is bei expo sdk41. I hope for a quick repair.