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

28

Wie kann ich Apps im Mac App Store über ein Skript installieren oder aktualisieren? Ich würde Befehlszeilen-Tools bevorzugen, aber AppleScript oder eine andere API würde ausreichen.

Relevante Puzzleteile:

  • installer: Beachten Sie insbesondere die -store Flag, mit dem App Store-Installationen für Paketentwickler simuliert werden.
  • systemupdate: Kann Updates von Apple Apps, Flags verwalten -i installiert und -a sagt ihm, alle verfügbaren Updates zu installieren
Joseph Holsten
quelle
Werden Ihre Apps mit einer Apple-ID erworben oder verfolgen Sie für jeden Rechner eine individuelle Apple-ID.
bmike
@ bmike: Ich würde gerne eine gemeinsame Apple-ID oder eine eindeutige für jeden Rechner verwenden
Joseph Holsten
Vorausgesetzt, MacWorld ist richtig, dass Mountain Lion den Software-Update-Dienst abstellt und alles über den Mac App Store abläuft, ist die Verwaltung dieses Problems eine Herausforderung für Arbeitsgruppen und Unternehmen. Ich frage mich, ob der Apple Configurator möglicherweise erweitert wird, um Konten zu verwalten, und Remotedesktop kann möglicherweise Updates starten, ohne die Benutzer zu stören, bis die Updates durch einen Neustart übernommen werden.
bmike

Antworten:

13

Die meisten Benutzer können nur automatische Updates aktivieren und Apple alle Updates verwalten lassen. Wenn es einen Grund gibt, warum Sie dies nicht tun können oder können, gibt es ein Befehlszeilentool zur Automatisierung von App Store-Installationen und -Updates.

Ein bemerkenswertes Open Source-Tool zum Replizieren des Mac App Store von der Befehlszeile aus mas :

Installieren:

brew install mas 

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

mas upgrade

Wenn Sie Ihrer Apple-ID nicht der Software von Drittanbietern vertrauen möchten, können Sie auch Ihre Benutzeroberfläche automatisieren und den Kontonamen und das Kennwort mithilfe von keychain speichern.

Die Apple-Lösung für Nicht-App Store-Sicherheitspatches und -Updates soll das ausführen softwareupdate Über die Befehlszeile können Sie die gesamte Software aktualisieren, die von Apple installiert werden soll, ohne dass der Benutzer eingreifen oder die App Store-Benutzeroberfläche verwenden muss.

Derzeit bei Lion und Mountain Lion - Dies bedeutet, dass der Mac einen lokalen OS X-Server erreicht, der Downloads von Systemupdates und Software speichert, die außerhalb des App Store installiert wurden. Wenn Sie keinen lokalen Software-Update-Server haben, werden Dateien natürlich direkt von Apple heruntergeladen.

Für Mountain Lion 10.8.2 und niedriger wird alles weiterhin über den App Store bereitgestellt. Daher ist die Apple-Software wie OS X-Updates mit diesem Tool nur für Updates und Nicht-App Store-Updates skriptfähig.

Was ist nicht skriptfähig (noch oder vielleicht überhaupt) sind Apps, die über den App Store installiert werden, wie Xcode und Pages sowie Anwendungen von Drittanbietern. Das bedeutet, dass Sie nicht nur ein Tool zur Aktualisierung der gesamten Software haben können, ohne die App Store App zu öffnen und ein Kennwort auf dem Bildschirm der Benutzeroberfläche einzugeben.

Sie können die Apps nur einmal herunterladen und anschließend auf mehrere Macs kopieren, sofern die Apple-ID, mit der die erste Kopie der App heruntergeladen wurde, auch auf allen Macs verwendet wird, auf denen die App ausgeführt wird.

Ich kenne mehrere Institutionen, die von jeder App eine Kopie für ein Labor mit 20 Computern erwerben, um eine Lizenz für jeden Sitzplatz zu erhalten, aber dann eine Datei auf allen Macs bereitstellen, so dass nach dem Herunterladen eines Updates ein Tool wie Apple Remote Desktop oder Caspar oder ein hausgemachtes Werkzeug wie scp oder rsync wird verwendet, um die aktualisierte Version der App auf alle Macs im Labor zu verschieben.

Wenn Sie die Route der einzelnen Apple-ID für jeden Computer ausführen, können Sie die Installation von App-Updates nicht mithilfe von Skripts durchführen, da für jedes Konto das Kennwort angefordert wird, es sei denn, Sie kennen alle Kennwörter und führen das Skript für die Benutzeroberfläche aus, wo AppleScript dies kann Geben Sie den korrekten Benutzernamen und das Passwort programmgesteuert ein und klicken Sie auf die Schaltfläche, um den Download-Vorgang für die Updates der einzelnen Maschinen zu starten. Die Art und Weise, in der App Store-Apps mit einem Code signiert sind, macht es schwierig, ein Update einzulegen, ohne das Paket ungültig zu machen oder den gesamten App Store-Prozess rückgängig zu machen / jailbreaken und den normalen Ablauf des App Installers zu umgehen.

bmike
quelle
5

Dies ist über die Open Source möglich mas Befehlszeilendienstprogramm:

mas-cli

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

Offenlegung: Ich bin der Schöpfer von mas

argon
quelle
Vielen Dank für das Tool und hier posten. Ich hoffe, Apple hält das API / SDK stabil, damit das Tool mit der Zeit weiterarbeiten kann.
bmike
3

Vielleicht möchten Sie auschecken Sprossenverpackung und Solist . Sie können OSX-Pakete von einem URI aus mit installieren dmg_package Anbieter. Schauen Sie sich einige der an Rezepte in Sprossen für einige Beispiele.

Verwenden Sie zum automatischen Aktualisieren von Sicherheitsupdates pivotal_workstation :: osx_updates Rezept. ( Beachten Sie, dass dies verwendet wird softwareupdate )

Zum Homebrew Apps, die brew Anbieter hat eine upgrade Aktion.

Soweit ich weiß, gibt es keinen Anbieter, der App Store-Apps automatisch aktualisiert. Sie können jedoch möglicherweise die integrierte Auto-Update-Funktion einiger Apps in einer verwenden execute oder bash Provider-Block. Möglicherweise können Sie AppleScript auch in einem Kochrezept verwenden, um die App Store App zu automatisieren. Ein paar Beispiele für die Verwendung von Inline-AppleScript finden Sie in der sprout-osx-settings :: function_keys Rezept. (Einige andere Beispiele: sprout-osx-settings :: remove_expose_keyboard_shortcuts . sprout-osx-settings :: set_finder_show_user_home_in_sidebar )

TrinitronX
quelle
1

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

Die, die mir am besten vertraut ist, ist Radmind (was bei UMich für das Management ihrer Labore begann (alte Seite) ).

radmind ist darauf ausgerichtet, eine Standard-OS-Vorlage für eine Reihe von Maschinen bereitzustellen und auf dem neuesten Stand zu halten. Für eine kleine Website ist dies möglicherweise zu viel Arbeit. Der grundlegende Workflow ist:

  • Erstellen Sie eine saubere "Build-Maschine" und installieren Sie radmind & amp; all Ihre Standardsoftware.
  • Erstellen Sie Radmind-Transkripte für diese Build-Maschine.
  • Installieren Sie radmind auf Ihren Client-Computern, und ziehen Sie die Transkripte, um sie zu installieren.
  • Aktualisieren Sie für Builds den Build-Server, erstellen Sie ein Update- / Patch-Transkript und wenden Sie es auf die Clients an.

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

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

voretaq7
quelle
1
Ich versuche, diesen Prozess für chef zu automatisieren, ein Systemautomatisierungswerkzeug wie radmind. Das Problem ist, dass diese Tools keine Möglichkeit haben, Apps aus dem Mac App Store zu installieren.
Joseph Holsten
1
@JosephHolsten Die Prozedur mit radmind wäre "Installieren Sie die Anwendung auf Ihrer Vorlagenmaschine und aktualisieren Sie das Transkript". (Immer noch eine manuelle Installation, aber eine manuelle Installation statt 1000.)
voretaq7