syncthing-macos項目是節儉的本機MacOS Syncthing Tray應用程序捆綁包。它捆綁了自己的同步實例並包裝同步背景過程,使其的行為更像是本機MacOS應用程序,而不是具有Web瀏覽器接口的命令行實用程序。
功能包括:
~/Library/Application Support/Syncthing/syncthing.log logfile,使用finder-> go->轉到文件夾打開它。
注意:這是官方的同步MacOS應用程序捆綁包。請確保您沒有其他同步實例或運行的包裝器,否則此應用程序將無法使用!
當前,OS X 10.13或更高是必要的。 Syncthing-Macos作為磁盤圖像包裝,作為與同步二進制捆綁在一起的應用程序。
要安裝只需下載DMG,將其安裝並拖放應用程序即可安裝。唯一必要的配置是在配置遠程同步實例時設置API密鑰和URL,將自動配置本地實例。 syncthing-macos應用程序捆綁包會禁用syncthing的自動上層器,因為它具有使用Sparkle自己的更新機制。
最新版本可在GitHub版本上找到,也可以使用Homebrew brew install --cask syncthing安裝它
所有跨平台方法都無法使用Apple MacOS提供的所有本機設施。包括自動更新,矢量圖標集(可視網膜準備)並創建應用程序捆綁包。 Guis是用Xcode設計的,所有內容都以Objective-C和Swift的組合為“本地方法”。
該項目的目的是保持本地MacOS同步托盤精簡,但可用。沒有圖形,沒有高級配置窗口。它只是提供了一個非常簡單的包裝器,因此用戶不知道Syncthing船作為命令行應用程序。它努力具有良好默認的可用性,應始終遵循蘋果人界面準則,以使其盡可能多地感覺到本地應用。
有關當前狀態,請參見問題跟踪器(已過濾錯誤標籤)。
歡迎捐款和問題報告。
麻省理工學院
自動更新必須為無支撐的OS版本手動禁用。
syncthing-macos旨在運行自己的同步實例並自動檢測API鍵。首選項窗口用於指向本地運行實例,不支持遠程實例。可以運行您自己的實例並指向其出於高級/開發目的。只有在知道自己在做什麼時,才應該更改設置。
設置額外的同步命令行參數是一個隱藏的功能。您需要使用應用程序默認配置編寫這些。參數不能包含空格的唯一當前限制!在下面的示例中,啟用了審核日誌:
defaults write com.github.xor-gate.syncthing-macosx Arguments '--audit --auditfile=/Users/JohnDoe/staudit.log'
當默認的IP地址從127.0.0.1更改為諸如EG 192.168.1.102的可路由上的IP地址時,也需要設置托盤應用程序偏好。否則,無法訪問API並將保持“離線”。如果打破了配置,則可以在~/Library/Application Support/Syncthing/config.xml下使用go-> go-> go to文件夾手動編輯文件。並從托盤重新啟動同步服務。
com.apple.provenance metadata問題)解決XATTR同步。使用XATTR同步功能時,從MACOS 13.0到MACOS <13.0同步時會失敗。當使用此功能時,必須停止同步並手動編輯位於/Users/<user>/Library/Application Support/Syncthing/config.xml配置XML文件。或運行同步守護程序實例時的位置未管理應用程序捆綁包)。手動編輯配置文件是必要的,因為Web UI暫時不支持XATTR過濾器管理(Release V1.22.1-1)。
每個共享文件夾xattrFilter必須配置如下:
<folder id="..." ...>
<xattrFilter>
...
<entry match="com.apple.provenance" permit="false"/>
<entry match="*" permit="true"/>
</xattrFilter>
</folder>
注意:請參閱com.apple.provenance xattrFilter entry 。
另請參見#185和論壇帖子以獲取更多信息。
在Mac OS X上,您將應用程序從應用程序文件夾中刪除到垃圾箱。但是,有些特定於用戶的文件保存在其他地方,這些文件位於$HOME/Library/Application Support/Syncthing下。此文件夾中的文件是配置,加密/配置文件和數據庫緩存。有關更多信息,請參見docs.syncthing.net/users/config.html。
默認情況下,Syncthing MacOS應用程序會自動檢查更新。要禁用(或重新啟用)自動更新檢查檢查一個必須從命令行設置Sparkle Updater參數:
defaults write com.github.xor-gate.syncthing-macosx SUEnableAutomaticChecks 0
此設置是未經事件的,因此僅從命令行可用。當您的系統不再支持並且不想通知禁用不支持的更新,建議您進行通知。
在編譯git subodules之前,需要存在:
git submodule update --init
在Xcode中編碼時,必須使用新的syncthing.xcworkspace 。
使用XCode或運行:
make debug
它將自動下載Syncthing Universal Binary並將其添加到應用程序捆綁包中。
對於發布,構建簽名應用程序構建並創建可分佈的DMG:
make release-dmg
腳本將選擇第一個可用的開發人員ID並使用它簽名。要指定簽名身份,請使用SYNCTHING_APP_CODE_SIGN_IDENTITY環境變量:
SYNCTHING_APP_CODE_SIGN_IDENTITY="Mac Developer: [email protected] (XB59MXU8EC)" make release-dmg
同步設置使用NSDEFAULTS設施。從命令行中,所有設置都可以顯示:
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屬性(僅是用戶)如果要使用NICE GUI,但在Syncthing.app Bundle外面有自己的可執行文件,則可以使用bunderin terminal或iterm2使用defaults命令行工具手動覆蓋Executable配置參數。最後一個參數應更改為同步守護程序Golang應用程序。
defaults write com.github.xor-gate.syncthing-macosx Executable /Users/jerry/develop/Syncthing/exe/syncthing
要將其還原回捆綁路徑,只需使用屬性的刪除即可。它將自動將其重置。
defaults delete com.github.xor-gate.syncthing-macosx Executable
可可錄用於依賴關係管理。它可以與Homebrew Package Manager一起安裝。有關Cocoapods的更多信息,請閱讀Cocoapods指南。
它使用帶有-<bundle index>編號的已發貨同步可執行版本。因此,對於首次構建/軟件包的同步0.14.28 ,它版本為0.14.28-1 。當前,不需要單獨的syncthing-macos版本。由於它還使包裝器與Syncthing版本保持緊密結合。
syncthing/Scripts/syncthing-resource.sh獲取同步資源syncthing/Scripts/create-dmg.sh生成的syncthing/Info.plist, key CFBundleShortVersionStringSYNCTHING_APP_CODE_SIGN_IDENTITY Environment varible指定的),App Bundle和DMG均與第一個可用的開發人員ID證書籤名) syncthing/syncthing-macos只會發貨穩定發行,而不會釋放Syncthing Service(守護程序)。
創建DMG後,必須將其發送給Apple才能進行公證。如果Apple正確驗證該應用程序以進行spctl :
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)
當它未正確公告時,可以看到以下輸出(請注意源):
spctl -a -t exec -vvv /Volumes/Syncthing/Syncthing.app
/Volumes/Syncthing/Syncthing.app: accepted
source=Developer ID
origin=Developer ID Application: Jakob Borg (LQE5SYM783)
另請參見https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution,請參見Apple開發人員文檔
使用安裝的semver模塊激活Python虛擬環境。例如source venv/bin/activate 。
要更新捆綁的同步,必須從主文件夾中運行make release-update夾基本上是自動執行這些步驟的:
更新SYNCTHING_VERSION syncthing/Scripts/syncthing-resource.sh
更新syncthing/Info.plist
CFBundleShortVersionString :用戶可讀字符串(例如1.27.10-1 )CFBundleVersion :增量版本計數器(例如1.27.10-1的102701001 )當Git分支開發或發佈時,將GitHub推到GitHub Actions Ci Server會自動構建調試並發布
手動從github.com的操作中下載版本.dmg該動作已正確簽名和公證
手動創建帶有標籤v<major>.<minor>.<patch>-<bundle index>
運行Sparkle Updater Appcast.xml的部署。這將github釋放到sparkle appcast.xml文件。 (另請參見Sparkle文檔)將用戶推向用戶。