Mac OSX app no longer supporting 32bit plugins


(Andrew Dyson) #1

Hi There,

From June Apple is blocking 32bit architecture content.

Subsequently I’m getting the following error when uploading my ‘pkg’ file.

ERROR ITMS-90240: “Unsupported Architectures. Your executable contained the following disallowed architectures: ‘[i386 (in com.sakanastudios.mykoi.pkg/Payload/MyKoi.app/Contents/Plugins/fmodstudio.bundle/Contents/MacOS/fmodstudio, com.sakanastudios.mykoi.pkg/Payload/MyKoi.app/Contents/Plugins/fmodstudioL.bundle/Contents/MacOS/fmodstudioL)]’. 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.”

I read a thread (linked below) where someone had already encountered and resolved this issue, however I’m not a programmer by trade and this thread did not clearly, in my limited capabilities, explain how to extrapolate the 32bit content.

Here are the links for reference.

http://www.fmod.org/questions/question/mac-os-bundle-files-not-supporting-64-bit-flagged-as-disallowed-architechture-by-itunesconnect/

https://www.fmod.org/questions/question/fmod-64-bit-for-mac/

Any help, clarification would be greatly appreciated.

Many thanks,

Andy


(Andrew Dyson) #2

Looks like I’m better at this than I thought. Whether by luck or having sufficient patience to battle the Unity OSX build / packaging code, signing marathon. I figured out my own answer.

Might as well share it should anyone else require similar clarity on the necessary steps.

First here is a helpful link describing the functionality of ‘lipo’.
https://ss64.com/osx/lipo.html

In terminal you simply need to type the following.

$ lipo [Path to fmodstudio plugin in the fmodstudio.bundle, usually something like this; ‘/Users/UserName/FolderWhereYourAppFileIs/Your.app/contents/plugins/fmodstudio.bundle/Contents/MacOS/fmodstudio’] -output [Where ever you want to send the modified file, I just copied the above link and called the output file fmodstudio2, you might actually be able copy it over the existing file but I didn’t try] -remove i386

Once you run it you will get a new file that only contains the x86_64 architecture. You can then delete the old file and rename the modified file back to fmodstudio.

You then need to repeat the process for fmodstudioL

I guess it’s worth noting that if you got this far you will have already been through the process of removing all the meta data from said bundle files (thanks unity) and you can keep a copy of the cleaned Plugins folder so you no longer need to run through this process every time you create a new build until such time that you update FMOD.

Apologies for the length of this post. There might be better ways of achieving this and I’m all ears if anyone would like to share, but at least this might eventually help some poor soul out there.


(Cameron Baron) #3

We will be removing the 32bit Mac libs but not until 1.11.


(Andrew Dyson) #4

Thanks Cameron, that will be very helpful.


(Ryan Miller) #5

It’s upsetting that FMOD still ships with 32-bit plugins on Mac when it’s been disallowed from App Store submission for months. Asking your users to lipo -thin the package themselves is a poor solution. FMOD mentions MacOS support, but currently does not do that out of the box.


(Andrew Dyson) #6

Totally agree it’s frustrating. But when you have gone through the process of launching an App on Mac OS using Unity (worthy of a tattoo IMHO), then this kind of stuff feels pretty normal :). I’m just thankful that I got a legible error message and there is a work around. Any third party plugin in Unity is fraught with dangers in my experience, not to mention Unity versions (I have lost count of my grey hairs). It’s an epic job of herding cats, ensuring that everything works on all systems all the time, so many variables. At least it will be fixed in 1.11 :).


(Mathew Block) #7

Thanks for your concerns, they are certainly understandable. Our policy however is not to make binary breaking changes in a patch release and removing 32bit would do exactly that.

There are other distribution channels developers use outside the store and 32bit is still viable (at least for now). Also keep in mind FMOD supports back to OS X 10.5.

We think the best action is to formally deprecate 32bit Mac in 1.11.00 on the major version release. For now this means developers wanting to submit to the store will need to use the lipo tool to extract the unneeded slice.


(Leonel Menezes Morato Lima) #8

After the lipo process, I’ve been facing errors with codesign of the fmod plugins bundles.
fmodstudio.bundle, fmodstudioL, resonanceaudio.bundle and gvraudio.bundle
The error comes after the app loader process.
the error generated is:
com.poisonpix.iterinferis.pkg/Payload/Iter Inferis.app/Contents/Plugins/fmodstudio.bundle/Contents/MacOS/fmodstudio: unsealed contents present in the bundle root


(Andrew Dyson) #9

If I’m not mistaken, ‘unsealed contents’ usually means that there is meta data in the bundle. Open the bundle and delete the meta data and you should be good.