O Projeto syncthing-macos é um pacote de aplicação de bandeja de sincronização nativo de MacOS frugal. Ele agrupa sua própria instância de sincronização e envolve o processo de fundo de sincronização, tornando-o mais como um aplicativo MacOS nativo e menos como um utilitário de linha de comando com uma interface do navegador da Web.
Os recursos incluem:
~/Library/Application Support/Syncthing/syncthing.log , use o localizador -> vá -> vá para a pasta para abri -lo.
Aviso : este é o pacote de aplicativos MacOS de sincronização oficial. Certifique -se de que você não tenha outras instâncias de sincronização ou invólucros em execução ou esse aplicativo não funcionará!
Atualmente, é necessário OS X 10.13 ou superior. O Syncthing-MACOs é embalado como uma imagem de disco como um aplicativo agrupado com o binário de sincronização.
Para instalar, basta baixar o DMG, monte -o e arraste e solte o aplicativo para instalar. A única configuração necessária é definir a chave da API e o URL ao provisionar uma instância de sincronização remota, a instância local é configurada automaticamente. O pacote de aplicativos syncthing-macos desativa o atualizador automático de syncthing , pois possui seu próprio mecanismo de atualização usando Sparkle.
A versão mais recente está disponível nos lançamentos do GitHub, ou também pode ser instalada usando brew install --cask syncthing
Todas as abordagens de plataforma cruzada não conseguem usar todas as instalações nativas que o Apple MacOS fornece. Incluindo atualizações automáticas, conjunto de ícones vetoriais (pronto para retina) e criação de um pacote de aplicativos. As GUIs são projetadas com Xcode e tudo é codificado em uma mistura de Objective-C e Swift, que é "a abordagem nativa".
O objetivo deste projeto é manter a bandeja de sincronização do macOS nativa enxuta, mas utilizável. Sem gráficos, sem janelas de configuração avançada. Ele apenas fornece um invólucro muito simples, para que os usuários não tenham consciência de syncthing ships como um aplicativo de linha de comando. Ele se esforça para ter uma usabilidade de adeus e deve sempre seguir as diretrizes da interface humana da Apple para sentir o máximo possível um aplicativo nativo.
Consulte o rastreador de problemas (filtro de etiqueta de bug) para o status atual.
Contribuições e relatórios de emissão são bem -vindos.
Mit
A atualização automática deve ser desativada manualmente para versões do sistema operacional não suportadas.
syncthing-macos foi projetado para executar sua própria instância de sincronização e detectar automaticamente a tecla API. A janela Preferências é usada para apontar para uma instância de corrida local, uma instância remota não é suportada. É possível executar sua própria instância e apontá -la para fins avançados/de desenvolvimento. Você só deve alterar as configurações se souber o que está fazendo.
Definir parâmetros de comando de sincronização extra é um recurso oculto. Você precisa escrever isso usando a configuração dos padrões do aplicativo. A única limitação atual que os parâmetros não podem conter espaços!. No exemplo abaixo, o log de auditoria está ativado:
defaults write com.github.xor-gate.syncthing-macosx Arguments '--audit --auditfile=/Users/JohnDoe/staudit.log'
Quando o endereço IP padrão é alterado de 127.0.0.1 para um rotável, como por exemplo, 192.168.1.102, as preferências do aplicativo da bandeja também precisam ser definidas. Ou então a API não pode ser acessada e permanecerá 'offline'. Se você quebrou a configuração, poderá editar manualmente o arquivo no ~/Library/Application Support/Syncthing/config.xml usando o Finder com go -> vá para a pasta. E reinicie o serviço de sincronização da bandeja.
com.apple.provenance metadados) Ao usar o recurso de sincronização do XATTR, ele falha ao sincronizar do macOS 13.0 para macOS <13.0. Ao usar esse recurso, é preciso interromper a sincronização e editar manualmente o arquivo XML de configuração localizado em /Users/<user>/Library/Application Support/Syncthing/config.xml . Ou o local ao executar uma instância de daemon de sincronização não gerenciou o pacote de aplicativos). Editar manualmente o arquivo de configuração é necessário porque a interface do usuário da Web ainda não suporta o gerenciamento do filtro XATTR (liberação v1.22.1-1).
Por pasta compartilhada, o xattrFilter deve ser configurado da seguinte forma:
<folder id="..." ...>
<xattrFilter>
...
<entry match="com.apple.provenance" permit="false"/>
<entry match="*" permit="true"/>
</xattrFilter>
</folder>
Nota: consulte a entry com.apple.provenance xattrFilter .
Veja também #185 e o fórum post para obter mais informações.
No Mac OS X, você solta o aplicativo da pasta de aplicativos no lixo. Mas existem alguns arquivos específicos do usuário são mantidos em outros lugares, localizados sob $HOME/Library/Application Support/Syncthing . Os arquivos nesta pasta são os arquivos de configuração, criptografia/perfil e o cache do banco de dados. Para mais informações, consulte docs.syncthing.net/users/config.html.
Por padrão, o aplicativo MacOS de sincronização verifica automaticamente para atualizações. Para desativar (ou reativar) a verificação de atualização automática, é preciso definir o parâmetro Sparkle Updater no comando line:
defaults write com.github.xor-gate.syncthing-macosx SUEnableAutomaticChecks 0
Essa configuração não é adquirida e, portanto, disponível apenas na linha de comando. Quando seu sistema não é mais suportado e não deseja ser notificado de atualizações não suportadas, é recomendado, então é recomendado.
Antes de compilar os submódulos Git, precisa estar presente:
git submodule update --init
O novo syncthing.xcworkspace deve ser usado ao codificar no Xcode.
Construa com Xcode ou Run:
make debug
Ele baixará automaticamente a Syncthing Universal Binary e o adicionará ao pacote de aplicativos.
Para versão de liberação, assinando a criação do aplicativo e criando um DMG distribuível:
make release-dmg
O script selecionará o primeiro ID do desenvolvedor disponível e assinará o aplicativo com ele. Para especificar a identidade de assinatura, use SYNCTHING_APP_CODE_SIGN_IDENTITY Ambiente Variável:
SYNCTHING_APP_CODE_SIGN_IDENTITY="Mac Developer: [email protected] (XB59MXU8EC)" make release-dmg
As configurações de sincronização usam o recurso NSDefaults. A partir da linha de comando, todas as configurações podem ser mostradas com:
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 Daeomon (apenas usuários de energia) Se você deseja usar a GUI agradável, mas tenha seu próprio executável localizado fora do pacote Syncthing.app , o parâmetro de configuração Executable pode ser substituído manualmente com a ferramenta de linha de comando defaults usando o terminal incorporado ou o ITERM2. Os últimos argumentos devem ser alterados para o aplicativo Syncather Daemon Golang.
defaults write com.github.xor-gate.syncthing-macosx Executable /Users/jerry/develop/Syncthing/exe/syncthing
Para restaurá -lo de volta ao caminho do pacote, basta usar o Excluir da propriedade. Ele o redefinirá automaticamente de volta.
defaults delete com.github.xor-gate.syncthing-macosx Executable
Cocoapods é usado para gerenciamento de dependência. Ele pode ser instalado com o Homebrew Package Manager. Para obter mais informações sobre os cocoapods, leia os guias Cocoapods.
Ele usa a versão executável de sincronização enviada com um número -<bundle index> . Portanto, para sincronizar 0.14.28 com a primeira construção/pacote, ele é versão de 0.14.28-1 . Atualmente, não há necessidade de ter uma versão separada para syncthing-macos . Como também mantém o invólucro bem acoplado às liberações de sincronização.
syncthing/Scripts/syncthing-resource.shsyncthing/Scripts/create-dmg.shsyncthing/Info.plist, key CFBundleShortVersionStringSYNCTHING_APP_CODE_SIGN_IDENTITY Ambiente variável) syncthing/syncthing-macos enviará apenas liberações estáveis e não há candidatos a liberação do Serviço de Sincronização (daemon).
Depois que o DMG é criado, ele deve ser enviado para a Apple para ser notado. Pode ser verificado com spctl se o aplicativo for verificado corretamente pela Apple para distribuição:
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)
Quando não é notado corretamente, a seguinte saída é vista (observe a fonte):
spctl -a -t exec -vvv /Volumes/Syncthing/Syncthing.app
/Volumes/Syncthing/Syncthing.app: accepted
source=Developer ID
origin=Developer ID Application: Jakob Borg (LQE5SYM783)
Veja também a documentação do desenvolvedor da Apple em https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution
Ative o ambiente virtual do Python com o módulo semver instalado. Por exemplo source venv/bin/activate .
Para atualizar a sincronização em pacote, o make release-update deve ser executado na pasta principal, que faz basicamente essas etapas automaticamente:
ATUALIZAÇÃO syncthing/Scripts/syncthing-resource.sh , SYNCTHING_VERSION
Atualizar syncthing/Info.plist
CFBundleShortVersionString 1.27.10-1CFBundleVersion : Incrementando o contador da versão (por exemplo, 102701001 para 1.27.10-1 )Quando a filial do Git desenvolve ou libera pressionada para o Github, o servidor do GitHub Ações CI cria automaticamente depuração e liberação
Faça o download manualmente do lançamento .dmg de ações github.com que são assinadas corretamente e notarizadas
Crie manualmente um novo lançamento do Github com a tag v<major>.<minor>.<patch>-<bundle index>
Execute a implantação do Sparkle Updater Appcast.xml. Que transforma o GitHub libera o JSON em um arquivo Sparkle Appcast.xml. (Veja também Sparkle Documentation) para empurrar para os usuários.