El proyecto syncthing-macos es un paquete de aplicaciones de bandeja de sincronización de macOS nativos frugales. Bundia su propia instancia de sincronización y el proceso de fondo de sincronización envuelto, lo que hace que se comporte más como una aplicación MacOS nativa y menos como una utilidad de línea de comandos con una interfaz de navegador web.
Las características incluyen:
~/Library/Application Support/Syncthing/syncthing.log , use fincor -> go -> vaya a la carpeta para abrirla.
AVISO : Este es el paquete oficial de aplicaciones de MacOS de sincronización. ¡Asegúrese de que no tenga otras instancias o envoltorios de sincronización en ejecución o esta aplicación no funcionará!
Actualmente, OS X 10.13 o superior es necesario. Syncthing-Macos está empaquetado como una imagen de disco como una aplicación incluida con el binario de sincronización.
Para instalar, simplemente descargue el DMG, monte y arrastre y suelte la aplicación para instalar. La única configuración necesaria es establecer la tecla API y la URL al aprovisionar una instancia de sincronización remota, la instancia local está configurada automáticamente. El paquete de aplicaciones syncthing-macos desactiva el Auto-Updater de syncthing , ya que tiene su propio mecanismo de actualización utilizando Sparkle.
La última versión está disponible en GitHub Vellies, o también se puede instalar utilizando HomeBrew brew install --cask syncthing
Todos los enfoques multiplataforma no pueden usar todas las instalaciones nativas que Apple MacOS proporciona. Incluidas las actualizaciones automáticas, el conjunto de iconos de vectores (listos para retina) y la creación de un paquete de aplicaciones. Las GUI están diseñadas con Xcode y todo está codificado en una mezcla de Objective-C y Swift, que es "el enfoque nativo".
El objetivo de este proyecto es mantener la bandeja de sincronización de MacOS nativa delgada pero utilizable. Sin gráficos, sin configuración avanzada Windows. Simplemente proporciona un envoltorio muy simple, por lo que los usuarios no están al tanto de los barcos de sincronización como una aplicación de línea de comandos. Se esfuerza por tener una usabilidad del buen deforme y siempre debe seguir las pautas de la interfaz humana de Apple para sentirse tanto como sea posible una aplicación nativa.
Consulte el rastreador de problemas (etiqueta de error filtrada) para el estado actual.
Las contribuciones y los informes de emisión son bienvenidos.
MIT
La actualización automática debe deshabilitarse manualmente para versiones del sistema operativo no compatible.
syncthing-macos está diseñado para ejecutar su propia instancia de sincronización y detectar automáticamente la tecla API. La ventana de preferencias se usa para señalar una instancia de ejecución local, no es compatible con una instancia remota. Es posible ejecutar su propia instancia y señalarla con fines avanzados/de desarrollo. Solo debe cambiar la configuración si sabe lo que está haciendo.
Configurar parámetros de línea de comandos de sincronización adicional es una característica oculta. Debe escribirlos utilizando la configuración de los valores predeterminados de la aplicación. ¡La única limitación actual de los parámetros no puede contener espacios!. En el ejemplo a continuación, el registro de auditoría está habilitado:
defaults write com.github.xor-gate.syncthing-macosx Arguments '--audit --auditfile=/Users/JohnDoe/staudit.log'
Cuando la dirección IP predeterminada se cambia de 127.0.0.1 a una enrutable como, por ejemplo, 192.168.1.102 Las preferencias de la aplicación de la bandeja deben establecerse también. O de lo contrario, no se puede acceder a la API y permanecerá 'fuera de línea'. Si rompió la configuración, puede editar manualmente el archivo en ~/Library/Application Support/Syncthing/config.xml usando Finder con GO -> VO a la carpeta. Y reinicie el servicio de sincronización de la bandeja.
com.apple.provenance metadatos) Cuando se usa la función de sincronización XATTR, falla al sincronizar de MacOS 13.0 a MacOS <13.0. Al usar esta función, uno debe dejar de sincronizar y editar manualmente el archivo XML de configuración ubicado en /Users/<user>/Library/Application Support/Syncthing/config.xml . O la ubicación al ejecutar una instancia de demonio de sincronización no administró el paquete de aplicaciones). Es necesario editar manualmente el archivo de configuración porque la interfaz de usuario web aún no es compatible con la administración del filtro XATTR (versión v1.22.1-1).
Según la carpeta compartida, el xattrFilter debe configurarse de la siguiente manera:
<folder id="..." ...>
<xattrFilter>
...
<entry match="com.apple.provenance" permit="false"/>
<entry match="*" permit="true"/>
</xattrFilter>
</folder>
Nota: Consulte la entry com.apple.provenance xattrFilter .
Consulte también #185 y la publicación del foro para obtener más información.
En Mac OS X, suelta la aplicación de la carpeta de aplicación a su basura. Pero hay algunos archivos específicos del usuario en otro lugar, que se encuentran en $HOME/Library/Application Support/Syncthing . Los archivos en esta carpeta son los archivos de configuración, cifrado/perfil y el caché de la base de datos. Para obtener más información, consulte docs.syncthing.net/users/config.html.
Por defecto, la aplicación Syncthing MacOS verifica automáticamente las actualizaciones. Para deshabilitar (o volver a habilitar) la actualización automática, verifica que uno debe establecer el parámetro Sparkle Updater en la línea de comandos:
defaults write com.github.xor-gate.syncthing-macosx SUEnableAutomaticChecks 0
Esta configuración no está aconsejada y, por lo tanto, solo está disponible en la línea de comandos. Cuando su sistema ya no es compatible y no desea recibir una notificación de actualizaciones no respaldadas, se recomienda deshabilitar.
Antes de compilar los submódulos Git deben estar presentes:
git submodule update --init
El nuevo syncthing.xcworkspace debe usarse al codificar en xcode.
Construir con xcode o ejecutar:
make debug
Descargará automáticamente Syncthing Universal Binary y lo agregará al paquete de aplicaciones.
Para construcciones de lanzamiento, firmando la compilación de la aplicación y creando un DMG distribuible:
make release-dmg
El script seleccionará la primera ID de desarrollador disponible y firmará la aplicación con él. Para especificar la identidad de firmación, use SYNCTHING_APP_CODE_SIGN_IDENTITY Environment Variable:
SYNCTHING_APP_CODE_SIGN_IDENTITY="Mac Developer: [email protected] (XB59MXU8EC)" make release-dmg
La configuración de sincronización usa la instalación NSDefaults. Desde la línea de comandos, todas las configuraciones se pueden mostrar con:
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 Syncing Daeomon (solo usuarios de energía) Si desea usar la GUI agradable pero tiene su propio ejecutable ubicado fuera del paquete Syncthing.app , entonces el parámetro de configuración Executable se puede sobrescribir manualmente con la herramienta de línea de comandos defaults utilizando el terminal integrado o ITERM2. Los últimos argumentos deben cambiarse a la aplicación Syncthing Daemon Golang.
defaults write com.github.xor-gate.syncthing-macosx Executable /Users/jerry/develop/Syncthing/exe/syncthing
Para restaurarlo a la ruta del paquete, solo use Eliminar la propiedad. Lo restablecerá automáticamente.
defaults delete com.github.xor-gate.syncthing-macosx Executable
Cocoapods se usa para la gestión de la dependencia. Se puede instalar con HomeBrew Package Manager. Para obtener más información sobre Cocoapods, lea las guías de Cocoapods.
Utiliza la versión ejecutable de sincronización enviada con un número -<bundle index> . Entonces, para la sincronización 0.14.28 con primera compilación/paquete, se verifica como 0.14.28-1 . Actualmente no hay necesidad de tener una versión separada para syncthing-macos . Ya que también mantiene el envoltorio firmemente junto con las liberaciones de sincronización.
syncthing/Scripts/syncthing-resource.shsyncthing/Scripts/create-dmg.shsyncthing/Info.plist, key CFBundleShortVersionStringSYNCTHING_APP_CODE_SIGN_IDENTITY Environment Variable) syncthing/syncthing-macos solo enviará lanzamientos estables y no hay candidatos de liberación del servicio de sincronización (demonio).
Después de que se crea el DMG, debe enviarse a Apple para ser notarizado. Se puede verificar con spctl si Apple verifica correctamente la aplicación para su distribución:
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)
Cuando no se observa correctamente, se observa la siguiente salida (tenga en cuenta la fuente):
spctl -a -t exec -vvv /Volumes/Syncthing/Syncthing.app
/Volumes/Syncthing/Syncthing.app: accepted
source=Developer ID
origin=Developer ID Application: Jakob Borg (LQE5SYM783)
Vea también la documentación del desarrollador de Apple en https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution
Active el entorno virtual de Python con el módulo semver instalado. Por ejemplo source venv/bin/activate .
Para actualizar la sincronización agrupada, la make release-update debe ejecutarse desde la carpeta principal que básicamente hace estos pasos automáticamente:
Actualizar syncthing/Scripts/syncthing-resource.sh , SYNCTHING_VERSION
Actualizar syncthing/Info.plist
CFBundleShortVersionString : cadena legible del usuario (por ejemplo, 1.27.10-1 )CFBundleVersion : contador de versión incrementante (por ejemplo, 102701001 para 1.27.10-1 )Cuando la rama de Git se desarrolla o la liberación presionó para GitHub, las acciones de GitHub CI Server construye automáticamente la depuración y la liberación
Descargue manualmente el lanzamiento .dmg de las acciones de Github.com que está firmada y notarizada correctamente
Cree manualmente una nueva versión de GitHub con la etiqueta v<major>.<minor>.<patch>-<bundle index>
Ejecute la implementación de Sparkle Updater Appcast.xml. Que convierte a GitHub lanza a JSON en un archivo Sparkle Appcast.xml. (Ver también documentación de Sparkle) para impulsar a los usuarios.