syncthing-macos Project เป็นชุดแอปพลิเคชั่น MacOS แบบประหยัด มันรวมอินสแตนซ์การซิงก์ของตัวเองและปิดกระบวนการการซิงก์พื้นหลังทำให้มันทำงานเหมือนแอปพลิเคชัน MacOS ดั้งเดิมและน้อยกว่าเช่นยูทิลิตี้บรรทัดคำสั่งที่มีอินเตอร์เฟสเว็บเบราว์เซอร์
คุณสมบัติรวมถึง:
~/Library/Application Support/Syncthing/syncthing.log , ใช้ Finder -> GO -> ไปที่โฟลเดอร์เพื่อเปิด
ข้อสังเกต : นี่คือชุดแอปพลิเคชัน SyncThing MacOS อย่างเป็นทางการ โปรดตรวจสอบให้แน่ใจว่าคุณไม่มีอินสแตนซ์การซิงค์อื่น ๆ หรือ wrappers ที่ทำงานไม่เช่นนั้นแอปพลิเคชันนี้จะไม่ทำงาน!
ปัจจุบันจำเป็นต้องใช้ OS X 10.13 หรือสูงกว่า Syncthing-Macos ถูกบรรจุเป็นภาพดิสก์เป็นแอปพลิเคชันที่รวมกับไบนารีซิงก์
หากต้องการติดตั้งเพียงดาวน์โหลด DMG ให้ติดตั้งและลากและวางแอปพลิเคชันเพื่อติดตั้ง การกำหนดค่าที่จำเป็นเพียงอย่างเดียวคือการตั้งค่าคีย์ API และ URL เมื่อจัดเตรียมอินสแตนซ์การซิงก์ระยะไกลอินสแตนซ์ท้องถิ่นจะถูกกำหนดค่าอัตโนมัติ ชุดแอปพลิเคชัน syncthing-macos จะปิดการใช้งานการเติม syncthing อัตโนมัติเนื่องจากมีกลไกการอัพเดทของตัวเองโดยใช้ Sparkle
เวอร์ชันล่าสุดมีให้บริการที่ GitHub หรือสามารถติดตั้งได้โดยใช้ Homebrew brew install --cask syncthing
วิธีการข้ามแพลตฟอร์มทั้งหมดไม่สามารถใช้สิ่งอำนวยความสะดวกดั้งเดิมทั้งหมดที่ Apple MacOS จัดเตรียมไว้ รวมถึงการอัปเดตอัตโนมัติชุดไอคอนเวกเตอร์ (พร้อม Retina-ready) และการสร้างชุดแอปพลิเคชัน GUIS ได้รับการออกแบบด้วย XCODE และทุกอย่างถูกเข้ารหัสด้วยการผสมผสานของ Objective-C และ Swift ซึ่งเป็น "วิธีการดั้งเดิม"
เป้าหมายของโครงการนี้คือการทำให้ MacOS มีการซิงค์ถาดถ่วงแบบลีน แต่ใช้งานได้ ไม่มีกราฟไม่มีหน้าต่างการกำหนดค่าขั้นสูง มันให้ wrapper ที่ง่ายมากดังนั้นผู้ใช้จึงไม่ทราบว่าเรือซิงก์เป็นแอปพลิเคชัน Commandline มันมุ่งมั่นที่จะมีการใช้งานที่ดีโดยการลดทอนและควรปฏิบัติตามแนวทางส่วนต่อประสานของ Apple Human เพื่อให้รู้สึกได้มากที่สุดเท่าที่จะเป็นไปได้
ดูตัวติดตามปัญหา (แท็กบั๊กกรอง) สำหรับสถานะปัจจุบัน
ยินดีต้อนรับการมีส่วนร่วมและรายงานปัญหา
มิกซ์
การอัปเดตอัตโนมัติจะต้องปิดใช้งานด้วยตนเองสำหรับเวอร์ชันระบบปฏิบัติการที่ไม่ได้รับการสนับสนุน
syncthing-macos ได้รับการออกแบบมาเพื่อเรียกใช้อินสแตนซ์การซิงก์ของตัวเองและตรวจจับคีย์ API โดยอัตโนมัติ หน้าต่างการตั้งค่าใช้เพื่อชี้ไปที่อินสแตนซ์การทำงานในพื้นที่ไม่รองรับอินสแตนซ์ระยะไกล เป็นไปได้ที่จะเรียกใช้อินสแตนซ์ของคุณเองและชี้ไปที่วัตถุประสงค์ขั้นสูง/การพัฒนา คุณควรเปลี่ยนการตั้งค่าหากคุณรู้ว่าคุณกำลังทำอะไรอยู่
การตั้งค่าพารามิเตอร์คำสั่ง syncthing พิเศษเป็นคุณสมบัติที่ซ่อนอยู่ คุณต้องเขียนสิ่งเหล่านี้โดยใช้การกำหนดค่าค่าเริ่มต้นของแอปพลิเคชัน ข้อ จำกัด ในปัจจุบันเพียงอย่างเดียวพารามิเตอร์ไม่สามารถมีช่องว่าง! ในตัวอย่างด้านล่างบันทึกการตรวจสอบถูกเปิดใช้งาน:
defaults write com.github.xor-gate.syncthing-macosx Arguments '--audit --auditfile=/Users/JohnDoe/staudit.log'
เมื่อที่อยู่ IP เริ่มต้นมีการเปลี่ยนแปลงจาก 127.0.0.1 เป็นที่อยู่ที่กำหนดเส้นทางได้เช่น 192.168.1.102 การตั้งค่าแอปพลิเคชันถาดจะต้องตั้งค่าด้วย มิฉะนั้น API ไม่สามารถเข้าถึงได้และจะยังคง 'ออฟไลน์' หากคุณทำลายการกำหนดค่าคุณสามารถแก้ไขไฟล์ได้ด้วยตนเองภายใต้ ~/Library/Application Support/Syncthing/config.xml โดยใช้ Finder With GO -> ไปที่โฟลเดอร์ และรีสตาร์ทบริการซิงค์จากถาด
com.apple.provenance Metadata) เมื่อใช้คุณสมบัติการซิงโครไนซ์ XATTR มันจะล้มเหลวเมื่อซิงค์จาก MacOS 13.0 ถึง MacOS <13.0 เมื่อใช้คุณสมบัตินี้เราจะต้องหยุดการซิงก์และแก้ไขไฟล์ XML การกำหนดค่าด้วยตนเองที่อยู่ที่ /Users/<user>/Library/Application Support/Syncthing/config.xml หรือตำแหน่งเมื่อเรียกใช้อินสแตนซ์ของ Daemon ที่ไม่ได้จัดการไม่ได้จัดการชุดแอปพลิเคชัน) การแก้ไขไฟล์การกำหนดค่าด้วยตนเองเป็นสิ่งจำเป็นเนื่องจาก Web UI ยังไม่รองรับการจัดการตัวกรอง XATTR เพียงแค่ (รีลีส v1.22.1-1)
ต่อโฟลเดอร์ที่ใช้ร่วมกันจะต้องกำหนดค่า xattrFilter ดังนี้:
<folder id="..." ...>
<xattrFilter>
...
<entry match="com.apple.provenance" permit="false"/>
<entry match="*" permit="true"/>
</xattrFilter>
</folder>
หมายเหตุ: ดู entry com.apple.provenance xattrFilter
ดูที่ #185 และฟอรัมโพสต์สำหรับข้อมูลเพิ่มเติม
บน Mac OS X คุณวางแอปพลิเคชันจากโฟลเดอร์แอปพลิเคชันไปยังถังขยะของคุณ แต่มีไฟล์เฉพาะของผู้ใช้บางไฟล์ถูกเก็บไว้ที่อื่นซึ่งอยู่ภายใต้ $HOME/Library/Application Support/Syncthing ไฟล์ในโฟลเดอร์นี้คือไฟล์การกำหนดค่าการเข้ารหัส/โปรไฟล์และแคชฐานข้อมูล สำหรับข้อมูลเพิ่มเติมดู docs.syncthing.net/users/config.html
โดยค่าเริ่มต้นแอปพลิเคชัน Syncthing MacOS จะตรวจสอบการอัปเดตโดยอัตโนมัติ ในการปิดใช้งาน (หรือเปิดใช้งานใหม่) การอัปเดตอัตโนมัติหนึ่งต้องตั้งค่าพารามิเตอร์ Sparkle Updater จาก CommandLine:
defaults write com.github.xor-gate.syncthing-macosx SUEnableAutomaticChecks 0
การตั้งค่านี้ไม่ได้รับการอุปถัมภ์และมีให้เฉพาะจาก Commandline เท่านั้น เมื่อระบบของคุณไม่ได้รับการสนับสนุนอีกต่อไปและไม่ต้องการได้รับแจ้งการอัปเดตที่ไม่ได้รับการสนับสนุนการปิดการใช้งานแล้วแนะนำ
ก่อนที่จะรวบรวม submodules git จะต้องนำเสนอ:
git submodule update --init
ต้องใช้ syncthing.xcworkspace ใหม่เมื่อเข้ารหัสใน XCODE
สร้างด้วย xcode หรือ run:
make debug
มันจะดาวน์โหลด Syncthing Universal Binary โดยอัตโนมัติและเพิ่มลงในชุดแอปพลิเคชัน
สำหรับการสร้างการสร้างการลงนามในแอปพลิเคชันสร้างและสร้าง DMG แบบกระจายได้:
make release-dmg
สคริปต์จะเลือกรหัสนักพัฒนาซอฟต์แวร์ตัวแรกที่มีอยู่และลงนามแอพด้วย ในการระบุตัวตนของการลงนามให้ใช้ตัวแปรสภาพแวดล้อม 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 Daeomon (ผู้ใช้พลังงานเท่านั้น) หากคุณต้องการใช้ GUI ที่ดี แต่มีการเรียกใช้งานของคุณเองที่อยู่นอกชุด Syncthing.app พารามิเตอร์การกำหนดค่าที่ Executable สามารถเขียนทับด้วยตนเองด้วยเครื่องมือคำสั่งเริ่ม defaults โดยใช้เทอร์มินัลในตัวหรือ ITERM2 อาร์กิวเมนต์สุดท้ายควรเปลี่ยนเป็นแอปพลิเคชัน Daemon 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
Cocoapods ใช้สำหรับการจัดการการพึ่งพา สามารถติดตั้งได้ด้วย HomeBrew Package Manager สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ Cocoapods อ่านคู่มือ Cocoapods
มันใช้เวอร์ชันที่เรียกใช้งาน SyncThing Syncutable ต่อผนวกด้วยหมายเลข -<bundle index> ดังนั้นสำหรับการซิงก์ 0.14.28 กับการสร้าง/แพ็คเกจแรกมันจะถูกกำหนดค่าเป็น 0.14.28-1 ขณะนี้ไม่จำเป็นต้องมีเวอร์ชันแยกต่างหากสำหรับ syncthing-macos เพราะมันยังช่วยให้เสื้อคลุมคู่กับการปล่อยซิงก์อย่างแน่นหนา
syncthing/Scripts/syncthing-resource.shsyncthing/Scripts/create-dmg.shsyncthing/Info.plist, key CFBundleShortVersionStringSYNCTHING_APP_CODE_SIGN_IDENTITY ) syncthing/syncthing-macos จะจัดส่งเฉพาะรุ่นที่มีเสถียรภาพและไม่มีการปล่อยผู้สมัครของบริการ Syncthing (Daemon)
หลังจากสร้าง DMG แล้วจะต้องส่งไปยัง Apple เพื่อให้ได้รับการรับรอง สามารถตรวจสอบได้ด้วย spctl หากแอปได้รับการตรวจสอบอย่างถูกต้องโดย Apple สำหรับการแจกจ่าย:
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)
ดูเอกสารประกอบของ Apple Developer ได้ที่ https://developer.apple.com/documentation/xcode/notarizing_macos_software_before_distribution
เปิดใช้งานสภาพแวดล้อมเสมือนจริงของ Python ด้วยโมดูล semver ที่ติดตั้ง เช่น source venv/bin/activate
ในการอัปเดตการซิงค์แบบรวมที่จะต้องเรียกใช้ make release-update จากโฟลเดอร์หลักซึ่งทำตามขั้นตอนเหล่านี้โดยอัตโนมัติ: โดยอัตโนมัติ:
อัปเดต syncthing/Scripts/syncthing-resource.sh , SYNCTHING_VERSION
อัปเดต syncthing/Info.plist
CFBundleShortVersionString : สตริงที่ผู้ใช้อ่านได้ (เช่น 1.27.10-1 )CFBundleVersion : ตัวนับรุ่นที่เพิ่มขึ้น (เช่น 102701001 สำหรับ 1.27.10-1 )เมื่อสาขา GIT พัฒนาหรือเปิดตัวไปที่ GitHub การกระทำของ GitHub CI เซิร์ฟเวอร์จะสร้างการดีบักและปล่อยโดยอัตโนมัติ
ดาวน์โหลดรีลีส. .dmg จากการกระทำของ github.com ซึ่งมีการลงนามอย่างถูกต้องและมีการรับรอง
สร้างรีลีส GitHub ใหม่ด้วย TAG v<major>.<minor>.<patch>-<bundle index>
เรียกใช้การปรับใช้ของ Sparkle Updater Appcast.xml ซึ่งเปลี่ยน GitHub ปล่อย JSON เป็นไฟล์ sparkle appcast.xml (ดูเอกสาร Sparkle) เพื่อผลักดันให้ผู้ใช้