Installing Old Versions of macOS
TIL: You can no longer download older versions of macOS for testing. The Mac App Store link works, but as soon as you GET, this appears[…]
All of Apple’s support documents make the assumption that you can download[…] That is no longer true.
Meanwhile, we have customers on 10.12 who are having issues with Twitterrific, and we can’t fix the problems without seeing them first.
If you have a Mac that shipped on anything before Catalina, you can boot holding CMD-Shift-R and it’ll download the recovery partition for the OS it shipped on. Then you can install that on another drive and use it for downloads.
However, this doesn’t help with getting intermediate releases. You should be downloading and saving copies of those as they become available. If you haven’t already done so, you may be able to use this workaround to download them manually.
Then there’s the question of how to install them. I recently set up an old Mac to use with my ScanSnap, whose software will no longer run on macOS 10.15. When installing from the recovery partition, I got an error that the software couldn’t be verified. And I kept getting errors like that when trying to install two separate versions of macOS from installers I had previously downloaded.
How could all three installers be damaged? The answer is that they weren’t:
Two unusual error messages that can occur during the attempted installation of OS X El Capitan or OS X Yosemite are the “This copy of the Install OS X El Capitan application can’t be verified. It may have been corrupted or tampered with during downloading” error, or a “This copy of the Install OS X Yosemite application can’t be verified. It may have been corrupted or tampered with during downloading” message, or a more vague “An error occurred while preparing the installation. Try running again” error message. Sometimes these can be resolved by simply rebooting and trying to reinstall OS X again (or re-downloading the OS X installer if it was damaged), but if the error messages are persistent, then you may find that modifying the system date of the Mac can be the resolution.
It seems that the installer is signed with a certificate that has expired. When booted from the installer, you can open Terminal and use the date command to set the clock to the past, i.e. to when that version of macOS was current. After installing, be sure to set the clock to the correct date, or various other things won’t work properly.
The fact that Apple no longer supports old versions of OS X in the latest Xcode’s is a much harder problem to deal with. Good luck debugging a 10.12 specific problem with Xcode 10.2.
Paul speaks the truth. The “easiest” option is to build with current tools into a folder that’s shared with a VM running the older OS.
Along with a healthy portion of
NSLog()orprint().
Previously:
Update (2019-08-29): Craig Hockenberry:
Weirdly, some older macOS releases still work. Starting to think this is a bug, rather than a policy.
I am going to try documenting Xcode patch change notes, maybe this will end up being useful to Developers.
Awesome.
See also: Apple Platform SDK API Differences.
Update (2019-08-30): See also: Howard Oakley.
Update (2020-10-15): I just reinstalled Mojave from an installer disk built with DropDMG. I had to turn off Wi-Fi to prevent the clock from correcting itself, then set the date backward using date -u 1015171718 so that the installer would ignore the expired certificate that caused it to report that the installer was damaged.
Update (2021-04-14): See also: How to get old versions of macOS.
Previously:
Update (2025-11-03): Howard Oakley:
If you have an old Mac and want to install or update macOS on it, using an old installer package with expired certificates will fail. To work around that, you’ll need to locate an installer with updated certificates that remain valid on the date that you perform that installation. There are several ways to accomplish that, with an excellent compilation given by Mr. Macintosh.
One popular way of working around this is to deliberately set your Mac’s clock back to a date before those certificates expired, such as 20 October 2019. Although that’s easy to do, it has far-reaching consequences that you should consider before trying it.
Previously: