5 Replies
      Latest reply on May 27, 2020 11:09 AM by esaruoho
      Andrewfromvictoria Level 1 Level 1 (0 points)

        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

        • Re: Cannot launch 32bit application on 10.14.6 - MobileDevice.framework is x86_64 only
          JustinJD Level 1 Level 1 (0 points)

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

          • Re: Cannot launch 32bit application on 10.14.6 - MobileDevice.framework is x86_64 only
            esaruoho Level 1 Level 1 (0 points)

            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?

            • Re: Cannot launch 32bit application on 10.14.6 - MobileDevice.framework is x86_64 only
              esaruoho Level 1 Level 1 (0 points)

              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.

              • Re: Cannot launch 32bit application on 10.14.6 - MobileDevice.framework is x86_64 only
                esaruoho Level 1 Level 1 (0 points)

                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.

                  • Re: Cannot launch 32bit application on 10.14.6 - MobileDevice.framework is x86_64 only
                    esaruoho Level 1 Level 1 (0 points)

                    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.