It’s that time of the year again; Apple has officially released macOS Sierra on the Mac App Store, and everybody just wants to upgrade their Macs to the latest release. And with that, many Mac users are likely to face issues while downloading the update via Mac App Store [MAS]. Due to its large size and slow download speed, the download usually takes longer time to complete. And during that, it might get interrupted, and then restart all over again.
This happens primarily because of the high volume of traffic hitting the Apple servers, which causes congestion in the network. And the situation would probably remain the same, at least for the first few days. I remember wasting around 15 GB of data trying to download OS X El Capitan last year.
That’s when we came up with a workaround to download OS X El Capitan via direct download instead of from the Mac App Store. Continuing the tradition this year too, we have created a separate page for maintaining all updates regarding macOS Sierra direct download.
Download and Install macOS Sierra without MAS
Ideally, when you download macOS Sierra from the Mac App Store, some raw package files will be downloaded to your computer. These packages are not directly installable on your Mac. Only when MAS processes these files during the download, are they converted to an installable (.app) file that can run on your Mac.
In this workaround, we’ll directly download the raw packages from Apple servers using the web browser or a dedicated download manager. Once the files are downloaded to the computer, we’ll configure our system in such a way that Mac App Store fetches the raw packages directly from the local repository (localhost) instead of from the Apple servers.
Note: If you use a Download Manager like Folx to download the raw packages, you’ll also be able to achieve higher download speeds compared to what you’d get if you’d downloaded the update from MAS.
macOS Sierra [Direct Download]
If you’re already familiar with downloading El Capitan from outside of MAS, this method also follows similar steps. Only, instead of one package, there are two this time. If you’re new here, just follow the steps mentioned in this section to download macOS Sierra directly without the Mac App Store.
Step 1: Download the macOS Sierra package files from their respective URLs. When you have downloaded them, you’ll have two packages. One is the .pkg file that contains the actual OS. The second is a signed .pfpkg file, which tells Mac App Store where to look for the .pkg file.
macOS Sierra 10.12 (16A323) / September 20, 2016
- macOS Sierra .pfpkg file download URL: http://osxapps.itunes.apple.com/apple-assets-us-std-000001/Purple62/v4/a3/a3/14/a3a31405-6063-cb0e-5af4-fdeb8fc39491/signed.dcr.6908747036561828369.pfpkg
- macOS Sierra .pkg file download URL: http://osxapps.itunes.apple.com/apple-assets-us-std-000001/Purple62/v4/af/5f/9d/af5f9d8e-cf9c-8147-c51c-c3c1fececb99/jze1425880974225146329.pkg
#Update: Here, we have mentioned the URL of the package file for macOS 10.12. If the latest version of macOS Sierra available on the Mac App Store is a different one, MAS will fetch it from a different location. Hence the workaround mentioned here will not work, unless you know the URL of the latest package file and create the directory structure on localhost based on the same.
Before downloading the package, ensure that it is the latest version of macOS Sierra released on the MAS. You may find out the URL of the latest macOS Sierra package files from the comments below or by searching on the Internet for it.
Step 2: Configure the Mac so that MAS looks for the macOS packages within your computer instead of fetching them from Apple Server.
For this, you need to edit your OS X hosts file and point the root domain of the download URLs (for example, “osxapps.itunes.apple.com”) to localhost (127.0.0,1), Follow the steps below to modify the hosts file as required:
- Launch Terminal on your Mac from Launchpad or Applications list.
- Type in the following command: “sudo nano /etc/hosts”
- Provide the System Password (if required). The hosts file is now open in editable mode within the Terminal window.
- Append the following line to the end of the file: “127.0.0.1 osxapps.itunes.apple.com”.
- Press control + X (^X), then Y and hit return to save the file and return to Terminal prompt.
Now, whenever any request is generated from your computer to the root domain (osxapps.itunes.apple.com), it will point to your localhost.
Note: Sometimes, you might need to flush the DNS cache for the changes to take effect. To flush DNS cache, type “sudo killall -HUP mDNSResponder” in the command line and hit return.
Step 3: Place the downloaded packages (.pkg and .pfpkg files) in a certain relative path (directory structure) on your Mac, as indicated by the structure of their respective download URLs. In this example, we will create a folder named “macos_local” on Desktop, and replicate the directory structure of the two package URLs under the same. Once the relative path has been created, we’ll configure the localhost server to point to the macos_local directory on Desktop and run it. Follow the steps below to achieve the same.
Note: OS X comes preinstalled with Python, which natively includes a SimpleHTTPServer by default. This server can turn any directory on your Mac into a web server directory.
- Open Terminal from the Launchpad or Applications list.
- Type “cd Desktop” on the command line and hit return to enter the Desktop folder.
- Type “mkdir macos_local” and hit return to create the root directory of the same name on Desktop.
- Go to the newly created folder by typing “cd macos_local” and hitting return.
- Enter the following commands to create the relative paths for the .pfpkg and .pkg files respectively, inside the macos_local folder:
“sudo mkdir -p ./apple-assets-us-std-000001/Purple62/v4/a3/a3/14/a3a31405-6063-cb0e-5af4-fdeb8fc39491/”
“sudo mkdir -p ./apple-assets-us-std-000001/Purple62/v4/af/5f/9d/af5f9d8e-cf9c-8147-c51c-c3c1fececb99/”
Provide the admin password when requested.
- Place the downloaded package files in their respective relative locations (as per their URLs) within the macos_local folder on the Desktop. Click on Authenticate when prompted, and provide the system admin password.
- With macos_local as the present working directory in Terminal, execute the following command: “sudo python -m SimpleHTTPServer 80”. Provide the admin password and click on Allow in the subsequent message prompt.
The current directory (macos_local) will now be hosted on localhost. Leave the Terminal window open to keep the localhost server running until all the steps have been completed.
To verify the setup, open any of the package URLs (.pkg or .pfpkg) in your browser and check the download speed as it downloads the package. You should notice a very high speed which is much higher than the speed of your Internet connection. This is because the file is being downloaded from localhost. Your Internet bandwidth is not being used.
Step 4: Now launch the Mac App Store and install macOS Sierra in the usual way. This time, MAS will fetch the package files from localhost and launch the installer package once the packages have been processed.
Note: Your Mac might request resources from the “osxapps.itunes.apple.com” domain while installing macOS Sierra. Thus, it is recommended to remove the entry from the hosts file that we appended earlier, before proceeding with the installation.
Is this method genuine?
In this workaround, we are downloading the required resources from the Apple Server and using Mac App Store to install the OS update. So yes, it is as genuine as the official method. The only thing we are changing here is the location where MAS fetches the packages from. If you are downloading the packages from third party sources, you can verify whether it’s the original file by comparing their MD5 and SHA1 hash values.
macOS Sierra — Single Download, Multiple Installations
If you want to update multiple Macs to the latest Sierra release, you can just download the required package files once and use them to update them all. Alternatively, when MAS has finished downloading macOS Sierra, but has not installed it yet, you can find the Setup (.app) file in the Applications folder. Once you have taken a backup of the file, you can install macOS Sierra on any Mac just by double clicking on it. You may also create a bootable USB installer for macOS Sierra using the same file.
If this workaround has helped you to get macOS Sierra easily or saved your Internet bandwidth on single or multiple installations, let us know in the comments below.