I just tried to upload a new app in the macOS store, and I was faced with this message during the uploading:
iTunes Store Operation Failed
ERROR ITMS-90240: “Unsupported Architectures. Your executable contained the following disallowed architectures: ‘[i386 (in org.example-osx.pkg/Payload/Example Appstore.app/Contents/Frameworks/SDL2_net.framework/Versions/A/SDL2_net)]’. New apps submitted to the Mac App Store must support 64-bit starting January 2018, and Mac app updates and existing apps must support 64-bit starting June 2018.”
Any knowledge on the subject?
Seems pretty clear. Only pure 64bit allowed anymore and the frameworks are universal builds with both 32 and 64bit.
At the moment this applies only to the Mac Store. Mac OS will still install 32-bit applications obtained from other sources, although you may receive a warning. Nevertheless, given how things are moving (and looking at what has happened in iOS), I would not be surprised if support for 32-bit apps in Mac OS is dropped altogether in the next couple of years.
So do I need to rebuild the frameworks with only 64x architecture?
Maarten: either rebuild the framework or use lipo to split the binary https://stackoverflow.com/questions/5352113/how-do-i-turn-a-fat-library-into-a-non-fat-library
Rtrussel: yes, only applies to the AppStore now. Supposedly there are signs that the next major MacOS will severly cripple 32bit and in the major version after this completely strips 32bit support ;(
Apple’s official line is “we highly recommend distributing 64-bit binaries to make sure your users can continue to run your apps on future versions of macOS”. They are not known for being responsive to developers (!), but it may depend on whether there are any ‘major’ applications that cannot straightforwardly be ported to 64-bits (for example because they contain large amounts of assembler code).
As far as I am aware Microsoft have no plans to drop 32-bit support from Windows anytime soon, so Apple are bound to be conscious of a potential hit to their market share if they kill off apps that continue to be available on Windows.
I just had to rebuild the frameworks using the “Standard Architecture (64-bit Inter)” and then it was ok.
This is only related if you publish through macOS Appstore.