syncthing-macos -Projekt ist ein sparsames natives MacOS-Synkblesen-Tray-Anwendungsbündel. Es bündelt seine eigene Synkthemeninstanz und wickelt synchronisierte Hintergrundprozess, sodass es sich eher wie eine native MacOS-Anwendung und weniger wie ein Befehlszeilen-Dienstprogramm mit einer Webbrowser-Schnittstelle verhält.
Zu den Funktionen gehören:
~/Library/Application Support/Syncthing/syncthing.log , Verwenden Sie Finder -> Go -> Gehen Sie in Ordner, um es zu öffnen.
Beachten Sie : Dies ist das offizielle Syncing MacOS -Anwendungsbündel. Bitte stellen Sie sicher, dass Sie keine anderen Synchronisierungsinstanzen oder Wrapper ausführen, da diese Anwendung nicht funktioniert!
Derzeit ist OS X 10.13 oder höher erforderlich. Syncthing-Macos wird als Scheibenbild als Anwendung verpackt, das mit der Synchronisation Binärdatei gebündelt ist.
So laden Sie einfach die DMG herunter, montieren Sie sie und ziehen Sie die Anwendung zum Installieren ab. Die einzige notwendige Konfiguration besteht darin, die API-Taste und die URL bei der Bereitstellung einer Remote-Synkthemeninstanz festzulegen. Die lokale Instanz ist automatisch konfiguriert. Das syncthing-macos Anwendungsbündel deaktiviert den Auto-Updater der syncthing , da es über einen eigenen Aktualisierungsmechanismus mit Sparkle verfügt.
Die neueste Version ist bei Github Releases erhältlich oder kann auch mit Homebrew brew install --cask syncthing installiert werden
Alle plattformübergreifenden Ansätze können nicht alle nativen Einrichtungen verwenden, die Apple MacOS bietet. Einschließlich Auto-Updates, Vector-Symbol-Set (Retina-fähig) und Erstellen eines Anwendungsbündels. Die GUIs sind mit Xcode entwickelt und alles ist in einer Mischung aus Objektiv-C und Swift codiert, die "der native Ansatz" ist.
Das Ziel dieses Projekts ist es, das native MacOS -Synchronisierungsschale mager zu halten, aber nutzbar. Keine Grafiken, keine erweiterten Konfigurationsfenster. Es bietet nur einen sehr einfachen Wrapper, sodass Benutzer keine Schiffe als Befehlszeilenanwendung synchronisieren. Es ist bestrebt, eine Verwendbarkeit von Verabschiedung zu haben, und sollte immer den Richtlinien der menschlichen Schnittstelle von Apple Human befolgen, um eine native Anwendung wie möglich zu fühlen.
Sehen Sie sich den aktuellen Status an den Problemtriebwerk (Fehler mit dem Filtern) an.
Beiträge und Ausgabeberichte sind willkommen.
MIT
Auto-update muss für nicht unterstützte Betriebssystemversionen manuell deaktiviert werden.
syncthing-macos ist so konzipiert, dass sie eine eigene Synchronisierungsinstanz ausführen und den API-Schlüssel automatisch erkennen. Das Fenster der Einstellungen wird verwendet, um auf eine lokale Laufinstanz zu verweisen, eine Remote -Instanz wird nicht unterstützt. Es ist möglich, Ihre eigene Instanz durchzuführen und auf fortgeschrittene/Entwicklungszwecke auf sie zu verweisen. Sie sollten nur die Einstellungen ändern, wenn Sie wissen, was Sie tun.
Das Einstellen zusätzlicher Synchronisierungs -Befehlszeilenparameter ist eine versteckte Funktion. Sie müssen diese über die Konfiguration der Anwendungsstände schreiben. Die einzige Strombegrenzung Die Parameter können keine Leerzeichen enthalten!. Im folgenden Beispiel ist das Audit -Protokoll aktiviert:
defaults write com.github.xor-gate.syncthing-macosx Arguments '--audit --auditfile=/Users/JohnDoe/staudit.log'
Wenn die Standard -IP -Adresse von 127.0.0.1 zu einem routablen wie z. B. 192.168.1.102 geändert wird, müssen auch die Einstellungen für die Anwendung der Tray -Anwendung festgelegt werden. Oder auf die API kann nicht zugegriffen werden und bleibt "offline". Wenn Sie die Konfiguration gebrochen haben, können Sie die Datei unter der ~/Library/Application Support/Syncthing/config.xml mit Finder mit Go -> GO zum Ordner manuell bearbeiten. Und starten Sie den Synchronisierungsdienst neu aus dem Tablett.
com.apple.provenance metadata) Bei Verwendung der XATTR -Synchronisationsfunktion fällt es bei der Synchronisierung von macOS 13.0 nach MacOS <13.0 fehl. Wenn Sie diese Funktion verwenden, muss man die Synchronisierung stoppen und die Konfiguration XML -Datei unter /Users/<user>/Library/Application Support/Syncthing/config.xml manuell bearbeiten. Oder der Ort beim Ausführen einer Synkthemen -Daemon -Instanz hat das Anwendungsbündel nicht verwaltet. Manuell bearbeiten die Konfigurationsdatei ist erforderlich, da die Web-Benutzeroberfläche die XATTR-Filterverwaltung noch nicht unterstützt (Release V1.22.1-1).
Pro gemeinsam genutzter Ordner Der xattrFilter muss wie folgt konfiguriert werden:
<folder id="..." ...>
<xattrFilter>
...
<entry match="com.apple.provenance" permit="false"/>
<entry match="*" permit="true"/>
</xattrFilter>
</folder>
HINWEIS: Siehe com.apple.provenance xattrFilter entry .
Weitere Informationen finden Sie auch #185 und im Forum Post.
Unter Mac OS X lassen Sie die Anwendung aus dem Anwendungsordner auf Ihren Müll fallen. Es gibt jedoch einige benutzerspezifische Dateien, die an anderer Stelle aufbewahrt werden, die unter $HOME/Library/Application Support/Syncthing liegen. Die Dateien in diesem Ordner sind die Konfiguration, Verschlüsselungs-/Profildateien und der Datenbankcache. Weitere Informationen finden Sie unter docs.syncthing.net/users/config.html.
Standardmäßig überprüft die Syncthing MacOS -Anwendung automatisch nach Aktualisierungen. Um zu deaktivieren (oder wieder zu erneuern), muss die automatische Update-Überprüfung des Parameters des Sparkle Updaters aus der Befehlszeile festlegen:
defaults write com.github.xor-gate.syncthing-macosx SUEnableAutomaticChecks 0
Diese Einstellung ist nicht angeschlossen und daher nur aus der Befehlszeile verfügbar. Wenn Ihr System nicht mehr unterstützt wird und nicht mehr über nicht unterstützte Updates zur Deaktivierung benachrichtigt wird, wird empfohlen.
Vor dem Kompilieren von Git -Submodule muss vorhanden sein:
git submodule update --init
Der neue syncthing.xcworkspace muss beim Codieren in Xcode verwendet werden.
Erstellen Sie mit Xcode oder Run:
make debug
Es wird automatisch Syncthing Universal Binary herunterladen und es zum Anwendungsbündel hinzufügen.
Für Release -Builds Unterzeichnung des Anwendungsbaues und Erstellen eines verteilbaren DMG:
make release-dmg
Das Skript wählt die erste verfügbare Entwickler -ID aus und signiert die App damit. Um die Signieridentität anzugeben, verwenden Sie die Umgebungsvariable der Umgebungsvariable SYNCTHING_APP_CODE_SIGN_IDENTITY :
SYNCTHING_APP_CODE_SIGN_IDENTITY="Mac Developer: [email protected] (XB59MXU8EC)" make release-dmg
Die Synchronisierungseinstellungen verwenden die NSDefaults -Einrichtung. Aus der Befehlszeile können alle Einstellungen angezeigt werden mit:
jerry@Jerrys-iMac ~ % defaults read com.github.xor-gate.syncthing-macosx
{
ApiKey = rR7YrEDLKhNETJZKgySmnYPZvebY9qgk;
Executable = "/Applications/Syncthing.app/Contents/Resources/syncthing/syncthing";
SUEnableAutomaticChecks = 1;
SUHasLaunchedBefore = 1;
SULastCheckTime = "2021-01-08 12:05:53 +0000";
SUSendProfileInfo = 0;
StartAtLogin = 1;
URI = "http://127.0.0.1:8384";
}
Executable Eigenschaft (nur Power-User) Wenn Sie die nette GUI verwenden möchten, aber Ihre eigene ausführbare Datei außerhalb des Syncthing.app -Bundle befinden möchten, kann der Executable Konfigurationsparameter mit dem Befehlszeilen -Tool für die defaults mit integriertem Terminal oder ITERM2 manuell überschrieben werden. Die letzten Argumente sollten in die Syncthing -Dämon -Golang -Anwendung geändert werden.
defaults write com.github.xor-gate.syncthing-macosx Executable /Users/jerry/develop/Syncthing/exe/syncthing
Um es wieder in den Bündelpfad zu bringen, verwenden Sie einfach das Löschen der Eigenschaft. Es wird es automatisch zurücksetzen.
defaults delete com.github.xor-gate.syncthing-macosx Executable
Cocoapods wird für das Abhängigkeitsmanagement verwendet. Es kann mit dem Homebrew Package Manager installiert werden. Weitere Informationen zu Cocoapods finden Sie in den Cocoapods Guides.
Es verwendet die ausführbare Syncthing -Version, die mit einer -<bundle index> -Nummer angehängt ist. Für die Synchronisierung 0.14.28 mit dem ersten Build/Paket ist es mit 0.14.28-1 versioniert. Derzeit sind keine separate Version für syncthing-macos erforderlich. Da hält der Wrapper auch eng mit den Synchronisationsfreisetzungen gekoppelt.
syncthing/Scripts/syncthing-resource.sh abgerufen.shsyncthing/Scripts/create-dmg.sh erzeugtsyncthing/Info.plist, key CFBundleShortVersionString abgerufen.SYNCTHING_APP_CODE_SIGN_IDENTITY -Umgebungsvariable angegeben) syncthing/syncthing-macos versenden nur stabile Freisetzungen und keine Freisetzungskandidaten des Syncthing-Dienstes (Dämon).
Nachdem die DMG erstellt wurde, muss es an Apple gesendet werden, um notariell notariell zu werden. Es kann mit spctl überprüft werden, wenn die App von Apple für die Verteilung korrekt überprüft wird:
spctl -a -t exec -vvv /Volumes/Syncthing/Syncthing.app
/Volumes/Syncthing/Syncthing.app: accepted
source=Notarized Developer ID
origin=Developer ID Application: Jakob Borg (LQE5SYM783)
Wenn es nicht korrekt notariell ist, wird die folgende Ausgabe gesehen (beachten Sie die Quelle):
spctl -a -t exec -vvv /Volumes/Syncthing/Syncthing.app
/Volumes/Syncthing/Syncthing.app: accepted
source=Developer ID
origin=Developer ID Application: Jakob Borg (LQE5SYM783)
Siehe auch die Apple Developer -Dokumentation unter https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution
Aktivieren Sie die virtuelle Python -Umgebung mit installiertem semver -Modul. ZB source venv/bin/activate .
Um die gebündelte Synchronisierung des make release-update zu aktualisieren, muss aus dem Hauptordner ausgeführt werden, der diese Schritte automatisch ausführt:
Aktualisieren Sie syncthing/Scripts/syncthing-resource.sh , SYNCTHING_VERSION
Aktualisieren Sie syncthing/Info.plist
CFBundleShortVersionString : Benutzer-lesbarer Zeichenfolge (z. B. 1.27.10-1 )CFBundleVersion : Inkrementierung der Versionszähler (z. B. 102701001 für 1.27.10-1 )Wenn die GIT -Zweigstelle entwickelt oder veröffentlicht wird, um die GitHub -Aktionen zu gitHub -Aktionen CI -Server automatisch zu Debug und Release zu erstellen
Laden Sie die Veröffentlichung .dmg von Github.com -Aktionen manuell herunter, die korrekt signiert und notariell notariell sind
Erstellen Sie manuell eine neue GitHub-Version mit Tag v<major>.<minor>.<patch>-<bundle index>
Führen Sie die Bereitstellung von Sparkle Updater Appcast.xml aus. Wodurch GitHub JSON in eine farkle Appcast.xml -Datei veröffentlicht wird. (Siehe auch Sparkle -Dokumentation), um die Benutzer voranzutreiben.