macOS
DMG verteilen, Installomator-Label für Jamf Pro und andere MDM, Signatur und Notarisierung prüfen
Für macOS liefern wir eine DMG aus. Sie enthält DeutschlandGPT.app als Universal Binary für Apple Silicon und Intel, ist mit einem Developer-ID-Zertifikat signiert und von Apple notarisiert.
| Wert | Inhalt |
|---|---|
| Apple Team-ID | XT228V86UU |
| Bundle-ID | de.deutschlandgpt.desktop |
| Installationsort | /Applications/DeutschlandGPT.app |
| Aktuelle DMG | https://www.deutschlandgpt.de/api/desktop/download/darwin |
| Aktuelle Versionsnummer | https://www.deutschlandgpt.de/api/desktop/version/darwin |
Die beiden Adressen sind stabil und zeigen immer auf die neueste Version. Ein Label oder ein Skript muss deshalb nie wegen eines Releases angepasst werden.
Installomator
Wenn Sie Installomator einsetzen, etwa über eine Jamf-Pro-Richtlinie, ist das der schnellste Weg. Das folgende Label installiert die App und aktualisiert eine vorhandene Installation an derselben Stelle:
deutschlandgpt)
name="DeutschlandGPT"
type="dmg"
downloadURL="https://www.deutschlandgpt.de/api/desktop/download/darwin"
appNewVersion=$(curl -fsL "https://www.deutschlandgpt.de/api/desktop/version/darwin")
expectedTeamID="XT228V86UU"
blockingProcesses=( "DeutschlandGPT" )
;;
Legen Sie das Label als eigene Fragmentdatei auf dem verwalteten Mac ab, aktuelle Installomator-Versionen lesen dafür /Library/Application Support/Installomator/*.sh, oder nehmen Sie es in Ihren Installomator-Fork auf. Aufgerufen wird es dann wie jedes andere Label:
/usr/local/Installomator/Installomator.sh deutschlandgpt \
BLOCKING_PROCESS_ACTION=tell_user NOTIFY=success
expectedTeamID ist der wichtige Teil: Installomator bricht ab, wenn die geladene App nicht mit unserem Zertifikat signiert ist. Eine manipulierte oder falsche Datei wird also gar nicht erst installiert.
Weil die App nach /Applications/DeutschlandGPT.app installiert, also genau dorthin, wo auch eine manuelle Installation aus der DMG landet, übernimmt Installomator eine bereits vorhandene Installation, statt eine zweite Kopie anzulegen.
appNewVersion sorgt dafür, dass Installomator nur dann herunterlädt, wenn tatsächlich eine
neuere Version vorliegt. Lassen Sie die Zeile weg, wenn das Gerät die Versionsabfrage nicht
erreichen darf: Installomator lädt dann bei jedem Lauf die DMG und vergleicht danach.
Ohne Installomator
Ohne Installomator ist der Ablauf derselbe wie bei jeder anderen DMG: mounten, App nach /Applications kopieren, aushängen. Ein Skript, das ein MDM als Richtlinie ausführen kann, sieht so aus:
#!/bin/bash
set -euo pipefail
dmg=$(mktemp -t deutschlandgpt).dmg
curl -fsL -o "$dmg" https://www.deutschlandgpt.de/api/desktop/download/darwin
mount=$(mktemp -d)
hdiutil attach "$dmg" -nobrowse -quiet -mountpoint "$mount"
# Nur installieren, wenn die App von uns signiert ist
team=$(codesign -dv --verbose=4 "$mount/DeutschlandGPT.app" 2>&1 \
| awk -F= '/TeamIdentifier/ {print $2}')
[ "$team" = "XT228V86UU" ] || { echo "Unerwartete Team-ID: $team"; exit 1; }
ditto "$mount/DeutschlandGPT.app" /Applications/DeutschlandGPT.app
hdiutil detach "$mount" -quiet
rm -f "$dmg"
Die Prüfung der Team-ID ist kein Beiwerk. Sie ist das, was Installomator sonst für Sie übernimmt, und der Grund, warum das Skript eine ausgetauschte Datei nicht installiert.
Signatur und Notarisierung prüfen
Auf einem Gerät prüfen Sie die installierte App so:
# Signatur und Team-ID
codesign -dv --verbose=4 /Applications/DeutschlandGPT.app 2>&1 \
| grep -E "TeamIdentifier|Authority"
# Notarisierung von Apple bestätigen lassen
spctl --assess --type execute -vv /Applications/DeutschlandGPT.app
Erwartet werden TeamIdentifier=XT228V86UU und eine Bestätigung mit source=Notarized Developer ID. spctl fragt dabei Apple, es setzt also eine Internetverbindung voraus.
Warum es keine PKG-Datei gibt
Wir liefern macOS ausschließlich als DMG aus. Installomator verarbeitet eine DMG direkt, damit ist der Jamf-Pro-Fall abgedeckt, und Sie sparen sich einen zusätzlichen Paketierungsschritt bei jedem Release.
Wenn Teile Ihrer Flotte ohne Installomator laufen und Sie zwingend eine PKG brauchen, sprechen Sie uns an. Wir schauen uns das dann konkret an.
Automatische Aktualisierung
Ob sich die App auf einem verwalteten Mac selbst aktualisiert, hängt davon ab, ob der angemeldete Benutzer das Programmpaket beschreiben darf. Wie das genau funktioniert und wie Sie die Aktualisierung per Richtlinie abschalten, steht unter Aktualisierung steuern.