Cannot launch 32bit application on 10.14.6 - MobileDevice.framework is x86_64 only

I have customers who cannot launch my 32-bit applications on 10.14. This is music software that uses CoreAudio. This started happening recently after installing iMovie and perhaps some other Apple software. The error is:

-----

dyld: Library not loaded: /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice

Referenced from: /System/Library/Frameworks/CoreAudioKit.framework/Versions/A/CoreAudioKit

Reason: no suitable image found. Did find:

/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice: mach-o, but wrong architecture

-----


Indeed when I open the terminal on the customer's computer and enter "file MobileDevice" I see that it only has 64bit architecture.

On my 10.14.6 system, MobileDevice has 32bit architecure as well.


I am guessing that some recent software installed this library. How can I fix this problem? I am not sure if I can simply copy the MobileDevice.framework from one computer to another.


Thanks,

Andrew

Replies

Same thing happened to us as well... forced 64bit upgrades!

Has anyone come up with a solution to this?

My treasured 32-bit Sample Manager app and various 32-bit plugins (VST/AU) suddenly refuse to load. The only thing I can think of is that I recently helped a client to upgrade from her iPhone 7 to a 2020 iPhone SE, and since I used iMazing for the process, it needed to get new updates for iTunes for syncing. After that, I've been having this issue.


Having a look around, it appears that a MobileDevice.framework can become corrupted, and a new Xcode install might help it somehow.


For me, my Mojave 10.14.6 computer was running iOS 12.0 Simulator so as a trial run, I've tried to install iOS 13.2 Simulator just to see if that helps. Am running an age old Xcode Version 11.3.1 (11C504)


.. So, further looking around seems to point out that this is related to iTunes Software Update for Syncing with new devices. Makes sense (see above about iMazing + iTunes updates for helping a client) Well, how to solve this?


.. Even further looking. Looks like Apple accidentally pushed a 64-bit MobileDevice.framework which is now playing havoc on all my 32-bit apps, and 32-bit plugins.


And this seems to have appeared during the month of April 2020. There are also mentions of this occurring in 2019, too.


One solution I've come across is simply copying in an older MobileDevice.framework and being happy with that. But I'm not sure how to do that, since I can't simply write to /System/Library/PrivateFrameworks/MobileDevice.framework even with sudo on the terminal.


Confirming what the original poster posted, yep, when going to /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/ and typing file MobileDevice, the result is:


$ file MobileDevice

MobileDevice: Mach-O 64-bit dynamically linked shared library x86_64


So now I definitely need a 32-bit MobileDevice.Framework. How to get it reliably from Apple, though? 😮


P.S. even people running GarageBand are now unable to run the app. That's pretty wack, huh?

So, you apparently can copy an older 32-bit MobileDevice.framework to your device. People have gotten the 32-bit apps to work again after that.


But I wonder how they have copied it. I don't have SIP disabled and I worry about this. I really need a 32-bit MobileDevice.framework and a functional Mojave 10.14.6. I cannot update to Catalina, most of my apps will then promptly stop working.

Okay, here's the solution.


1. Score a MobileDevice.framework - say a 2019 version or maybe a January-March 2020 one. Ask a friend. Check some other computer of yours. Preferably Mojave version.

2. Boot up with CMD-R down

3. Go to Utilities -> Terminal. Type csrutil enable

4. Boot back to macOS.

5. Move MobileDevice.framework from /System/Library/PrivateFrameworks/ to a folder of choice.

6. Place older MobileDevice.framework to /System/Library/PrivateFrameworks/

7. Go to Terminal and to folder /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/

8. Type file MobileDevice

9. Verify that it looks something like the following:


$ file /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice

/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice: Mach-O universal binary with 2 architectures: [i386:Mach-O dynamically linked shared library i386] [x86_64]

/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (for architecture i386): Mach-O dynamically linked shared library i386

/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64


10. Make sure your app works. Whichever app it is. For me, I ran Sample Manager and Renoise 3.1.1 32-bit version. Plugins loaded, apps worked.

11. Boot up with CMD-R down

12. Go to Utilities -> Terminal. Type csrutil disable

13. Restart.

14. Verify that apps still work.


Beware, from now on, any iTunes Sync updates.


Make yourself a macro that runs file MobileDevice in the /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/ folder. Run it every once in a while.


Retain the 32-bit MobileDevice.framework.


Be prepared to put it back in again.

  • Thank you @esaruoho , you literally saved me from having to upgrade to a newer OS and buy a new Pro Tools perpetual license/subscription because of one plugin I really need. Absolute star! 🤩

Add a Comment

Update. As of 27th of May 2020, I was able to install the mandatory MobileDeviceFramework update and the result is


$ file MobileDevice
MobileDevice: Mach-O universal binary with 2 architectures: [i386:Mach-O dynamically linked shared library i386] [x86_64]
MobileDevice (for architecture i386): Mach-O dynamically linked shared library i386
MobileDevice (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64


So Apple are now shipping i386 and x86_64 mobiledevices that no longer break 32-bit apps.

The solution by user "esaruoho" is correct except step 3 should be "csrutil disable" and step 12 should be "csrutil enable". I fortunately had made a clone of my Mojave boot disk 4 days before some update screwed up my MobileDevice framework. Fortunately I had not yet updated the clone version on that disk.
Hello,

I have High Sierra,

I currently plugged my iphone pro 11 into itunes , itunes did some type of update and ever since my ableton 9 live suite 32bit is no longer launch or work. The current version I have is up to date. After spending so much money on Vst's and plugins they are no longer work. Is there a way to delete the mobiledevice.framework 64bit and replace with mobiledevice.framework 32bit? since the update I can no longer access my back up from march, I can see them in the time machine but its says wait next to them and nothing appears. The report is below: I'm not great with tech. But from what basically the update screwed my comp.
Any help would be appreciated.

Process: Live [6600]
Path: /Applications/Ableton Live 9 Suite 32Bit.app/Contents/MacOS/Live
Identifier: com.ableton.live
Version: 9.7.7 [2018-06-22b058f6a52c] (9.7.7 [2018-06-22b058f6a52c])
Code Type: X86 (Native)
Parent Process: ??? [1]
Responsible: Live [6600]
User ID: 501

Date/Time: 2020-10-01 23:07:02.277 +0100
OS Version: Mac OS X 10.13.6 (17G14019)
Report Version: 12
Anonymous UUID: C813B9FF-E352-776B-9A26-6C5C75B221D0

Sleep/Wake UUID: D2602595-4783-4196-9427-429F60DAA5FF

Time Awake Since Boot: 57000 seconds
Time Since Wake: 660 seconds

System Integrity Protection: enabled

Crashed Thread: 0

Exception Type: EXCCRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC
CORPSE_NOTIFY

Termination Reason: DYLD, [0x2] Wrong architecture

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
Library not loaded: /System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice
Referenced from: /System/Library/Frameworks/CoreAudioKit.framework/Versions/A/CoreAudioKit
Reason: no suitable image found. Did find:
/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice: mach-o, but wrong architecture
/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice: stat() failed with errno=45
/System/Library/PrivateFrameworks/MobileDevice.framework/Versions/A/MobileDevice: mach-o, but wrong architecture


I followed the steps by esaruoho in his post "Okay, here's the solution," however steps 3 and 12 are reversed. You need to "csrutil disable" in step 3 and "csrutil enable" in step 12.

I was able to heal my Toast 14 application. Hope the fix sticks.

Thanks for the tip!
I need to add to my post from yesterday.

Yes, replacing the 64bit MobileDevice.framework with the 32bit version does restore function to older apps, in my case Toast Titanium 14. However then iTunes will no longer recognize my iPad 6th generation with iPadOS14.0.1. On launch iTunes demands an update. Which puts the 64bit framework back. Breaking Toast. Requiring a rinse/repeat cycle with a visit to Recovery boot each time I need to burn a DVD and/or sync the iPad.

The fix needs lots of steps. A shortcut would be to leave SIP disabled permanently which makes swapping 32bit/64bit frameworks easier. That's not recommended as it exposes the system to malware nasties which SIP and XProtect is designed to block.

FYI, I'm using a 2007 vintage iMac with MacOSX 10.11.6. Throwing money at updated hardware, MacOS, and application will ultimately end this madness for me, but sadly not for the developers invested it legacy SW.
GOD BLESS THIS THREAD!!

I had the exact same problem hugopaixao had. All of a sudden my 32 bit version of Ableton Live stopped working. I even went so far as to do a clean install of High Sierra. Then not knowing any better, I allowed my Mobile Device to be updated. Who knew?!

I followed esaruoho's advice and, poof, Ableton works again.

Gonna save this page for sure.

Thank you all so much for this!!
Ok, so that is why my 32 bit version of Ableton Live 9 is not working anymore.
I wonder if Apple will fix this in a an update for Mojave?
https://developer.apple.com/forums/thread/131381?answerId=421900022#421900022

Just wondering....I've gone through all the steps via Terminal and replacing 64 bit 'MobileDevice.framework' with an older one. But will I ever be able to update that mobile software when I plug in my devices? Or should I just leave it alone?

I'm guessing I would have to leave SIP disabled which is a bad idea, I'm told.

Note: I can only update up to High Sierra on my mid-2010 MacBook Pro.

Thanks, all.
Hi, for me on Sierra worked to keep the actual MobileDevice.framework and just replace the MobileDevice exec inside MobileDevice.framework with an old MobileDevice exec. Path: MobileDevice.framework/Versions/A/MobileDevice
Tried with iPhone SE iOS14.1 and Ableton Live9 and Logic9.
Backup your iPhone/iPad data! Not sure if this works for everybody.
Hope this works also for future iOS updates...
@ Eckart:

You mean that you can sync your iPhone with iTunes, and at the same time you fix the 32bits issue ?

I have the same issue with this damit mobiledevice.framework, and I was unable to export my projects from FCPX. I restore a old mobiledevice.framework (all one) from a TM backup, now i can export from FCPX, can backup and sync my iPhone and iPad on 14.0.1, but I can’t restore my iOS devices. As soon as i plug the iOS devices with a cable to iTunes, it ask me to upgrade the mobiledevices.framework.
@Eckart

So if I understand you correctly...I can update my mobile software when prompted after connecting my iPhone and iPad to my laptop. Then I just need to replace the MobileDevice exec file within the updated MobileDevice.framework, and this will allow me to still use 32bit software??