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文档)将用户推向用户。