Können Installationen und Upgrades im Mac App Store automatisiert werden?

Wie kann ich Apps aus dem Mac App Store per Skript installieren oder aktualisieren? Ich würde Befehlszeilentools bevorzugen, aber AppleScript oder eine andere API würde ausreichen.

Relevante Puzzleteile:

  • installer: Beachten Sie insbesondere das -storeFlag, das verwendet wird, um App Store-Installationen für Paketentwickler zu simulieren.
  • systemupdate: kann Updates für Apple-Apps verarbeiten, kennzeichnet -iInstallationen und -aweist es an, alle verfügbaren Updates zu installieren
Werden Ihre Apps mit einer Apple-ID gekauft oder verfolgen Sie eine individuelle Apple-ID für jeden Computer?
@bmike: Ich würde gerne eine gemeinsame Apple ID oder eine eindeutige für jeden Computer verwenden
Angenommen, MacWorld hat recht damit, dass Mountain Lion den Softwareaktualisierungsdienst ablehnt und alles über den Mac App Store läuft, wird die Verwaltung eine Herausforderung für Arbeitsgruppen und Unternehmen sein. Ich frage mich, ob der Apple Configurator möglicherweise erweitert wird, um bei der Verwaltung von Konten zu helfen, und Remote Desktop möglicherweise Updates starten kann, ohne Benutzer zu stören, bis ein Neustart die Updates anwendet.

Antworten (4)

Die meisten Leute können einfach automatische Updates aktivieren und Apple alle Updates verwalten lassen. Wenn es einen Grund gibt, warum Sie das nicht tun können oder wollen, gibt es ein Befehlszeilentool, um App Store-Installationen und -Updates zu automatisieren.

Ein bemerkenswertes Open-Source-Tool zum Replizieren des Mac App Store über die Befehlszeile ist mas :

Installieren:

brew install mas 

Sobald es drin ist, können Sie alle verfügbaren Apps aktualisieren mit:

mas upgrade

Wenn Sie Ihre Apple-ID nicht der Software von Drittanbietern anvertrauen möchten, können Sie auch Ihre Benutzeroberfläche automatisieren und den Kontonamen und das Kennwort mithilfe des Schlüsselbunds speichern.

Die Apple-Lösung für Sicherheitspatches und -updates, die nicht aus dem App Store stammen, besteht darin, das softwareupdateTool über die Befehlszeile auszuführen, um die gesamte Software zu aktualisieren, die Apple ohne Benutzereingriff oder über die App Store-Benutzeroberfläche installieren möchte.

Derzeit auf Lion und Mountain Lion – das bedeutet, dass der Mac auf einen lokalen OS X-Server trifft, der Downloads für Systemaktualisierungen und außerhalb des App Store installierte Software zwischenspeichert. Wenn Sie keinen lokalen Software-Update-Server haben, lädt dieser natürlich Dateien direkt von Apple herunter.

Für Mountain Lion 10.8.2 und niedriger kommt alles immer noch über den App Store - daher ist die Apple-Software wie OS X-Updates mit diesem Tool nur für Updates und Nicht-App Store-Updates vollständig skriptfähig.

Was (noch oder vielleicht nie) nicht skriptfähig ist, sind Apps, die aus dem App Store installiert werden, wie Xcode und Pages sowie Anwendungen von Drittanbietern. Das bedeutet, dass Sie nicht nur ein Tool haben können, um die gesamte Software zu aktualisieren, ohne die App Store App zu öffnen und ein Passwort auf dem Bildschirm der Benutzeroberfläche einzugeben.

Was Sie tun können, ist, die Apps einmal herunterzuladen und dann die App auf mehrere Macs zu kopieren, solange die Apple-ID, die zum Herunterladen der ersten Kopie der App verwendet wurde, auch auf allen Macs verwendet wird, auf denen die App ausgeführt wird.

Ich kenne mehrere Institutionen, die eine Kopie jeder App für ein Labor mit 20 Computern kaufen, um eine Lizenz für jeden Arbeitsplatz zu erhalten, aber dann eine Datei auf allen Macs bereitstellen, sodass nach Abschluss eines Update-Downloads ein Tool wie Apple Remote Desktop verfügbar ist oder Caspar oder ein hausgemachtes Tool wie scpoder rsyncwird verwendet, um die aktualisierte Version der App auf alle Macs im Labor zu übertragen.

Wenn Sie für jeden Computer den Weg einer individuellen Apple-ID gehen, können Sie die Installation von App-Updates nicht skripten, da jeder das Kennwort für jedes Konto anfordert, es sei denn, Sie kennen alle Kennwörter und führen UI-Skripte aus, wo AppleScript kann Geben Sie programmgesteuert den richtigen Benutzernamen und das richtige Passwort ein und klicken Sie dann auf die Schaltfläche, um den Download-Vorgang für die Updates jedes Computers zu starten. Die Art und Weise, wie App-Store-Apps mit Code signiert sind, macht es schwierig, einfach ein Update einzufügen, ohne das Paket ungültig zu machen oder irgendwie den gesamten App-Store-Prozess rückzuentwickeln / zu jailbreaken und den normalen Ablauf zu umgehen, den App-Installer seine Arbeit machen zu lassen.

Dies ist mit dem Open-Source mas-Befehlszeilendienstprogramm möglich:

mas-cli

Eine einfache Befehlszeilenschnittstelle für den Mac App Store. Entwickelt für Scripting und Automatisierung.

Offenlegung: Ich bin der Schöpfer vonmas

Vielen Dank für dieses Tool und die Veröffentlichung hier. Es hat lange gedauert und ich hoffe, dass Apple das API/SDK stabil hält, damit das Tool im Laufe der Zeit weiter funktioniert.

Vielleicht möchten Sie sich Sprout-Wrap und Solist ansehen . Sie können OSX-Pakete von einer URI mithilfe des dmg_packageAnbieters installieren. Schauen Sie sich einige der Rezepte in Sprout an, um einige Beispiele zu erhalten.

Um Sicherheitsupdates automatisch zu aktualisieren, verwenden Sie das Rezept pivotal_workstation::osx_updates . ( Beachten Sie, dass dies verwendet wirdsoftwareupdate )

Für Homebrew - Apps hat der brewAnbieter eine upgradeAktion.

Soweit ich weiß, gibt es keinen Anbieter, der App Store-Apps automatisch aktualisiert. Möglicherweise können Sie jedoch die integrierte automatische Update-Funktion einiger Apps innerhalb eines executeoder bash-Anbieterblocks verwenden. Möglicherweise können Sie AppleScript auch in einem Kochrezept verwenden, um die App Store-App zu automatisieren. Einige Beispiele für die Verwendung von Inline-AppleScript finden Sie im Rezept „sprout-osx-settings::function_keys“ . (Einige andere Beispiele: sprout-osx-settings::remove_expose_keyboard_shortcuts , sprout-osx-settings::set_finder_show_user_home_in_sidebar )

Ich bin mir nicht sicher, ob es eine Lösung vom Typ AppleScript gibt, aber es gibt Tools zum Verwalten einer großen Anzahl von OS X-Systemen.

Diejenige, mit der ich am besten vertraut bin, ist radmind (die bei UMich für die Verwaltung ihrer Labors (alte Site) begann ).

radmind ist wirklich darauf ausgerichtet, eine Standard-Betriebssystemvorlage auf einer Reihe von Computern bereitzustellen und auf dem neuesten Stand zu halten, sodass dies für eine kleine Site möglicherweise etwas zu viel Arbeit ist. Der grundlegende Arbeitsablauf ist:

  • Erstellen Sie eine saubere "Build-Maschine" und installieren Sie radmind und Ihre gesamte Standardsoftware.
  • Erstellen Sie radmind-Transkripte für diese Build-Maschine.
  • Installieren Sie radmind auf Ihren Client-Rechnern und ziehen Sie die Transkripte herunter/wenden Sie sie an, um sie zu installieren.
  • Aktualisieren Sie für Updates den Build-Server und erstellen Sie ein Update-/Patch-Transkript und wenden Sie es dann auf die Clients an.

… Im engeren Sinne wird die Installation also nicht automatisiert, sondern Sie müssen den interaktiven Teil nur einmal ausführen und dann das aktualisierte Betriebssystem an Ihre Clients verteilen.

Offensichtlich funktioniert dies am besten, wenn Sie überall eine Standardsoftware installieren können. Wenn Ihre Kunden alle speziell und einzigartig sind, ist dies möglicherweise keine großartige Lösung.

Ich versuche, diesen Prozess innerhalb von chef zu automatisieren, einem Systemautomatisierungstool wie radmind. Das Problem ist, dass diese Tools keine Möglichkeit haben, Apps aus dem Mac App Store zu installieren.
@JosephHolsten Das Verfahren mit radmindwäre "Installieren Sie die Anwendung auf Ihrem Vorlagencomputer und aktualisieren Sie das Transkript". (Immer noch eine manuelle Installation, aber eine manuelle Installation statt 1000.)