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
macos
mac-appstore
command-line
automator
code-signing
Joseph Holsten
quelle
quelle
Antworten:
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:
Sobald es installiert ist, können Sie alle verfügbaren Apps aktualisieren mit:
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
oderrsync
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.
quelle
Dies ist über die Open Source möglich
mas
Befehlszeilendienstprogramm:Offenlegung: Ich bin der Schöpfer von
mas
quelle
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 eineupgrade
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
oderbash
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 )quelle
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:
… 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.
quelle
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.)