microsoftconnect/intune-app-wrapping-tool-ios

ERROR ITMS-90087: “Unsupported Architectures. The executable for MyApp.app/Frameworks/IntuneMAMSwift.framework contains unsupported architectures ‘[arm64e]‘.”

dfct opened this issue · 8 comments

dfct commented

When I submit my app to the App Store, I encounter this error ^ referencing the Intune wrapper framework. As it were, my app is currently only capable of arm64 and not arm64e but it appears the Intune framework also includes arm64e support. Is it expected that the Intune wrapping process will include architectures that aren't supported by the app being wrapped? Or, can I specify architectures via a command line flag?

Hi @dfct, are you using some tool other than Xcode to submit to the app store? According to this doc, Xcode should automatically strip out arm64e slices during store submission.

dfct commented

I was indeed, was using Transporter. Thank you for that link! I'll see if I can try via Xcode or xcrun.

dfct commented

Unless I'm mistaken, Xcode only allows you to upload builds to the App Store that Xcode itself generated. This precludes our Intune wrapping tool scenario, no? I did give xcrun a go, but it fails validation in much the same way as the Transporter app complained:

xcrun altool --validate-app --file "MyApp.ipa" --username $USERNAME --password $USER_APP_PASSWORD
2020-08-07 13:36:08.408 altool[67990:4369778] *** Error: Unable to validate archive 'MyApp.ipa'.
2020-08-07 13:36:08.408 altool[67990:4369778] *** Error: code 1091 (App Store operation failed. Unsupported Architectures. The executable for MyApp.app/Frameworks/IntuneMAMSwift.framework contains unsupported architectures '[arm64e]'.)
2020-08-07 13:36:08.408 altool[67990:4369778] *** Error: code 1091 (App Store operation failed. Unsupported Architectures. The executable for MyApp.app/Frameworks/IntuneMAMSwiftStub.framework contains unsupported architectures '[arm64e]'.)

Can the arm64e arch be stripped from the wrapping tool until the App Store adds support?

I'll look at removing arm64e slices in a future release. In the meantime, could you try the following workaround:

1.) Copy the IntuneMAMPackager directory from the mounted volume to your local drive

2.) Run the following command in the terminal, replacing [Path_To_IntuneMAMPackager_Dir]:
lipo [Path_To_IntuneMAMPackager_Dir]/Contents/Resources/IntuneMAMSwift.framework/IntuneMAMSwift -remove arm64e -output [Path_To_IntuneMAMPackager_Dir]/Contents/Resources/IntuneMAMSwift.framework/IntuneMAMSwift

3.) Run the following command in the terminal, replacing [Path_To_IntuneMAMPackager_Dir]:
lipo [Path_To_IntuneMAMPackager_Dir]/Contents/Resources/IntuneMAMSwiftStub.framework/IntuneMAMSwiftStub -remove arm64e -output [Path_To_IntuneMAMPackager_Dir]/Contents/Resources/IntuneMAMSwiftStub.framework/IntuneMAMSwiftStub

4.) Wrap your app using the local copy of the wrapping tool and submit to the app store.

dfct commented

Update from my end -- can confirm that this worked. Used lipo to remove the arm64e slices prior to app wrapping and the resulting wrapped build was able to be delivered to Apple. Thank you @Kyle-Reis !

Great to hear! The fix for this issue should go out in our next release.

dfct commented

Fantastic, good deal. Cheers Kyle-Reis!

Hi @dfct, this issue should be addressed with the latest release (12.7.0).