Jay Taylor's notes

back to listing index

Downloading installer packages from the Mac App Store with AppStoreExtract

[web search]
Original source (derflounder.wordpress.com)
Tags: os-x Mac howto apple tools macOS app-store derflounder.wordpress.com
Clipped on: 2019-01-16

Der Flounder

Seldom updated, occasionally insightful.
Home > Mac administration, Mac OS X > Downloading installer packages from the Mac App Store with AppStoreExtract

Downloading installer packages from the Mac App Store with AppStoreExtract

As part of my work, I occasionally need to download installer packages for certain applications from the Mac App Store. In particular, I routinely download and archive certain Apple applications from the MAS to guard against the possibility that Apple will remove older versions of a particular application that I still need to have available.

A tool that has helped me with this has been Max Schlapfer‘s AppStoreExtract script. This script is designed to make copies of the installers from the Mac App Store, and is able to handle multiple installer downloads at once.

AppStoreExtract is available from GitHub at the following address:

https://github.com/maxschlapfer/MacAdminHelpers

For more details on how to download installers from the MAS using AppStoreExtract, see below the jump.

1. If needed, download the AppStoreExtract script and store it in a convenient location.

2. Once the AppStoreExtract script is available, open the Mac App Store and sign in with the appropriate Apple ID for the applications in question.

3. Open Terminal and begin running the script.

Note: Run the script with the logged-in user’s privileges. Do not run this script with root privileges, as the script will not locate the appropriate Mac App Store download folder when running as root.

4. You’ll be notified that you can press any key to finish the process once the software has been downloaded from the MAS.

5. Go to the Mac App Store’s Purchased list.

6. Click the Install button for the desired application(s).

7. Wait for the MAS to complete installation of all the desired applications.

8. Go back to Terminal and press any key.

9. When prompted to finalize the packages, press the Y key followed by the Return key on your keyboard.

10. The script will rename the downloaded installers to match the application name and version, then create a disk image with the installer package contained inside.

11. The disk images will be stored in /Users/Shared/AppStore_Packages

These downloaded installers will be signed with the Mac App Store’s certificate. From there, you can use it on its own or as part of a deployment workflow.

When the applications in question are installed on a Mac using the downloaded installer package, there will not be a _MASReceipt from the App Store included as part of the application. This means that the applications are not tied to a specific Apple ID.

  1. November 19, 2015 at 9:36 pm

    Thanks for this great tutorial! Very handy.

  2. November 19, 2015 at 10:16 pm

    You can also use this tool to capture update packages by going to the Updates tab instead of the Installers tab, but of course it will only serve you the diff between the previously installed version and the new one.

  3. Joss Brown
    November 19, 2015 at 11:07 pm

    How would removing the _MASReceipt be of any use? I can understand that this (probably) works for keeping older versions of freeware that you downloaded from the AppStore—and I do think that’s a great option—, but in your example (in the image above) you’re downloading Keynote, Numbers & Pages: these are apps you need to pay for, so they will only run when they’re linked to your AppStore account, or any other AppStore user who’s a registered buyer of those apps. Or am I missing something?

    Your readers should also note that removing the _MASReceipt might be illegal in their respective countries; it is illegal in Germany… as long as it’s for personal and private use (incl. copies for family & close friends) it’s not enforced by penalty, but it’s still de facto illegal.

  4. November 20, 2015 at 3:04 pm

    This is beyond awesome, thanks!

  5. December 1, 2015 at 3:19 pm

    Holy wah! This is awesome. Thanks Rich, and Max!

  6. MiqViq
    December 9, 2015 at 3:38 pm

    Developer Max kindly added a method (just add argument -m, like ‘AppStoreExctract.sh -m’) for saving the package file formatted as “KeyNote-6.6.1.pkg” as this is much more munki-friendly way of naming the packages.

  7. Zesa
    April 20, 2016 at 7:52 am

    In any apps, I take the message that the app is damage. (after installation the dmg). I try it on different clients.

  8. Kat
    February 22, 2017 at 5:18 pm

    THIS IS AMAZING. HOLY WOW. hey thanks.

  9. Anne
    March 6, 2017 at 11:15 pm

    This is excellent. I haven’t been using this extract script long enough to test what happens when there’s an update to the app that I’ve packaged using that method. Does the App Store recognize there’s an update?

    • Jesse
      June 14, 2017 at 4:25 pm

      Because it is not tied to an Apple ID, it will not automatically update via the App Store.

  10. sunlite
    November 11, 2017 at 1:54 am

    Dear All – all apps installed using the extracted dmg file are receiving the message that suggest the application is damaged. Any one else get this? Any suggestions on how to resolve this?

    • Darin
      February 6, 2018 at 4:09 pm

      To piggy back on sunlite’s question – recently I’ve been getting a “find: /var/volders/zz/zyxvpxv16cs (omitted for space): No such file or directory”. I’ve used this wonderful script with success in the past but now I get this. Any ideas? Or has Apple gotten wise and shut it down?

      • zesa0
        February 15, 2018 at 9:11 am

        Same here

  11. Jay
    November 28, 2018 at 4:44 pm

    looks like apple got wise and shut it down

    • Joss Brown
      November 28, 2018 at 8:22 pm

      Still working fine here.

Leave a Reply

November 2015
M T W T F S S
« Oct   Dec »
 1
2345678
9101112131415
16171819202122
23242526272829
30  

Categories

Categories

Archives

Blog Stats

  • 6,866,201 hits