I am thinking, even though you did not say it, that your problem is that even after you capture everything and deploy to a new station Garageband will still say that it needs to download the extra content.
This is because there is a plist (?) file under usr or bin or some hidden place, can't remember where, that gets modified to let Garageband know what is installed. This location is not scanned by Composer by default. You will need to modify the preference to scan and capture this file as well.
This installer will then work. That is until Apple changes a loop or instrument package and you will need to do it all again. It happened to us last year. The Garageband version didn't change but one of the other packages did.
What we ended up doing is grabbing all of the individual installers and then we created a policy to copy these to the local station with a script to run each one.
Just refreshed my extra GB content this morning. I like the idea of scripting the download but I'm a bit simpler. I simply install GB on a fresh new mac, run a composer index, open GB and let the new content download and install, complete the composer index and clean out any additional cruft that shows up. The nice part is that you can get the items automatically set to install in the user template so that it's available for all newly created users. in any event, looks like you've got at least two ways here!
IIRC, there's an issue with how GarageBand indexes the downloaded content. I used a similar script a while back to download all of the content for one of our labs that uses it heavily. After installing (and confirming the install by checking receipts), GarageBand still didn't recognize the content was installed. After playing with it for a bit and trying different methods, I still couldn't get it to work consistently.
If you use Composer, you need to capture the package receipts so the computer knows it's installed. They are located in /private/var/db/receipts. You want both the .bom & .plist files. By default Composer doesnt capture this folder so you can manually add it or change the Composer settings NOT to exclude this folder when scanning for changes.
I normally distribute this in two parts. First, I capture the Garageband installer as per Rich's method: https://derflounder.wordpress.com/2013/08/22/downloading-apples-server-app-installer-package/ and then I use Composer's indexing to capture the additional GB content on it's first launch. I am NOT capturing the .bom or .plist files form the receipts directory as they are installed by the native apple .pkg for Garageband.
FYI: I repackaged these apps yesterday using this method and all distributes perfectly fine!
@Chris_Hafner I distribute the GarageBand app per Rich's method as well. I then use a script to install all the additional content. I was simply stating if you use Composer for the entire app & extra content as the original question stated, by default it doesn't capture the receipts.
@jacob_salmela I'm giving your script a try. It has much more packages in it then the one I was using. Looks good so far. Thanks.
That's a good point @msnowdon Yet even so, wouldn't a composer captured install of GB itself leave that program locked to the AppleID that downloaded it? I know you're not recommending it or doing it that way, but for the benefit of discussion, isn't that why some of us use Rich's method?
P.S. I'm also assuming that we all know that the completely "proper" way is to distribute via VPP. Yet, for many of us, VPP distribution of these apps is still a bit problematic.
@Chris_Hafner The first build I did of GB, I used Composer for the whole thing. I used an Apple ID that I use to download all packages that go on my images. It seemed to go okay but sometimes it's hard to figure out what is actually needed and what extra junk Composer picked up. Once I came across Rich's method, I try not to use Composer unless it's for a very simple app. I rather use the native Apple installer package as much as possible.
I haven't been able to try VPP for OS X apps yet as you need to be on El Capitan and the majority of my clients are still using Yosemite. I do use it for IOS apps and like you say, it can be problematic.
The one good thing about VPP for OS X apps (once its works well) is the updates. It's a pain to keep up with building new packages every time an update comes out. User's see that there is an update and hound you until you get it out to them. I have other responsibilities besides managing Casper. At least they can install OS X updates on their own.
One last question. What is the best way to find out if say GarageBand has released new content other than what is in @jacob_salmela 's script? I'm not sure how often it changes but I didn't have nearly the amount of content that his script pulls down.
Thanks for your time,
I used the "New & Modified Snapshot" option, then did a clean download of Garage Band + Instruments.
Grabbed the Garage Band Extra Sounds from the App Support folder after downloading.
Only thing I had to delete before creating the package was the _MASReceipt
I used the "New & Modified Snapshot" option, then did a clean download of Garage Band + Instruments. Grabbed the Garage Band Extra Sounds from the App Support folder after downloading
Basically what I did at first but I made it a bit simpler:
Grab /Library/Application Support/Logic &GarageBand as well as /Library/Audio/Apple Loops, Apple Loops Index, and Impulse Responses. Drop them in Composer and make a dmg. I then used composer New & Modified to grab the index files and dropped those after installing the loops.
Seems to work well except that Garageband always says that some sounds are missing and wants to download them again (I know they're there). I let it "download and install" those sounds again which only takes a few minutes.
Logic is 100% fine with this method..
@leegalan I've actually been out of the Mac world for a couple of years now, so I haven't had much need to update or use the script. However, the script simply downloads the files direct from Apple, so as long as their paths haven't changed, it should still work. Of course, my script doesn't have any of the newer loops...
@leegalan Yeah, sometimes packages just drop out, I've mainly seen it with capturing the packages for deployment, not installation (I have a local repo). I'm sure he'll be able to give you a hand if you reach out on GitHub.
Glad it worked out for you for the most part. I spent a ton of time working on this crap because Apple makes it very difficult.
Edit: Funny, I literally just logged into jamfnation when you posted that.