syncthing-macos Project هو حزمة تطبيق صينية MacOS الأصلية المقتصفة. إنه يحدد مثيل التزامن الخاص به ويخلق عملية خلفية التزامن ، مما يجعلها تتصرف بشكل أكبر مثل تطبيق MACOS الأصلي وأقل مثل أداة سطر الأوامر مع واجهة متصفح الويب.
تشمل الميزات:
~/Library/Application Support/Syncthing/syncthing.log ، استخدم Finder -> Go -> انتقل إلى المجلد لفتحه.
إشعار : هذه هي حزمة تطبيق MacOS الرسمية. يرجى التأكد من عدم وجود مثيلات مزامنة أخرى أو أغلفة تعمل وإلا فلن يعمل هذا التطبيق!
حاليا ، OS X 10.13 أو أعلى ضروري. يتم تعبئة Syncing-Macos كصورة قرص كتطبيق مزج مع الثنائي المزامنة.
لتثبيت فقط قم بتنزيل DMG ، وقم بتثبيته وسحب وإسقاط التطبيق للتثبيت. التكوين الضروري الوحيد هو تعيين مفتاح API وعنوان URL عند توفير مثيل التزامن عن بُعد ، يتم تكوين المثيل المحلي تلقائيًا. تقوم حزمة تطبيق syncthing-macos بتعطيل المزامنة التلقائية syncthing لأنها تحتوي على آلية تحديث خاصة بها باستخدام Sparkle.
أحدث إصدار متاح في إصدارات Github ، أو يمكن أيضًا تثبيته باستخدام Homebrew brew install --cask syncthing
جميع أساليب المنصات غير قادرة على استخدام جميع المرافق الأصلية التي توفرها Apple MacOS. بما في ذلك المنحدرات التلقائية ، مجموعة أيقونة المتجهات (جاهزة للشبكية) وإنشاء حزمة تطبيق. تم تصميم واجهة المستخدم الرسومية باستخدام Xcode ويتم ترميز كل شيء في مزيج من Objective-C و Swift وهو "النهج الأصلي".
الهدف من هذا المشروع هو الحفاظ على صينية التزامن MacOS الأصلية Tean لكن قابلاً للاستخدام. لا الرسوم البيانية ، لا نوافذ التكوين المتقدمة. إنه يوفر فقط غلافًا بسيطًا للغاية ، لذلك لا يدرك المستخدمون سفن التزامن كتطبيق سطر الأوامر. يسعى جاهداً إلى الحصول على قابلية الاستخدام من أجل الوفاة ، ويجب أن تتبع دائمًا إرشادات واجهة Apple البشرية لتشعر بأكبر تطبيق محلي قدر الإمكان.
راجع تعقب المشكلات (تم ترشيح علامة الأخطاء) للوضع الحالي.
المساهمات وتقارير القضايا موضع ترحيب.
معهد ماساتشوستس للتكنولوجيا
يجب تعطيل التحديث التلقائي يدويًا لإصدارات OS غير المدعومة.
تم تصميم syncthing-macos لتشغيل مثيل التزامن الخاص به واكتشاف مفتاح API تلقائيًا. يتم استخدام نافذة التفضيلات للإشارة إلى مثيل تشغيل محلي ، لا يتم دعم مثيل عن بُعد. من الممكن تشغيل مثيلك الخاص والإشارة إليه لأغراض متقدمة/تطوير. يجب عليك تغيير الإعدادات فقط إذا كنت تعرف ما تفعله.
تعيين معلمات سطر أوامر Syncthing Extring هو ميزة مخفية. تحتاج إلى كتابة هذه باستخدام تكوين التطبيقات الافتراضية. القيد الحالي الوحيد الذي لا يمكن أن يحتوي المعلمات على مسافات!. في المثال أدناه ، يتم تمكين سجل التدقيق:
defaults write com.github.xor-gate.syncthing-macosx Arguments '--audit --auditfile=/Users/JohnDoe/staudit.log'
عندما يتم تغيير عنوان IP الافتراضي من 127.0.0.1 إلى عنوان قابل للتوجيه مثل على سبيل المثال 192.168.1.102 ، يجب تعيين تفضيلات تطبيق الدرج أيضًا. وإلا لا يمكن الوصول إلى واجهة برمجة التطبيقات وسيبقى "في وضع عدم الاتصال". إذا كسرت التكوين ، فيمكنك تحرير الملف يدويًا ضمن ~/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 . أو الموقع عند تشغيل مثيل Syncthing Daemon لم يدير حزمة التطبيق). يعد التحرير يدويًا ملف التكوين ضروريًا لأن واجهة مستخدم الويب لا تدعم إدارة مرشح 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 و Position Post لمزيد من المعلومات.
على Mac OS X ، يمكنك إسقاط التطبيق من مجلد التطبيق إلى سلة المهملات. ولكن هناك بعض الملفات الخاصة بالمستخدم يتم الاحتفاظ بها في مكان آخر ، والتي تقع تحت $HOME/Library/Application Support/Syncthing . الملفات الموجودة في هذا المجلد هي التكوين وملفات التشفير/الملف الشخصي وذاكرة التخزين المؤقت لقاعدة البيانات. لمزيد من المعلومات ، راجع docs.syncthing.net/users/config.html.
بشكل افتراضي ، يقوم تطبيق MACOS بمزامنة MACOS تلقائيًا للتحديثات. لتعطيل (أو إعادة تمكين) التحديث التلقائي ، يجب على المرء تعيين معلمة updater Sparkle من سطر الأوامر:
defaults write com.github.xor-gate.syncthing-macosx SUEnableAutomaticChecks 0
هذا الإعداد غير مسعور ويتوفر فقط من سطر الأوامر. عندما لا يتم دعم نظامك بعد الآن ولا يريد أن يتم إخطاره بالتحديثات غير المدعومة ، يوصى بذلك.
قبل تجميع الجهاز الفرعي GIT يجب أن تكون موجودة:
git submodule update --init
يجب استخدام syncthing.xcworkspace الجديد عند الترميز في Xcode.
بناء مع Xcode أو تشغيل:
make debug
سيتم تنزيله بشكل تلقائي مزامنة 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 (مستخدمي الطاقة فقط) إذا كنت ترغب في استخدام واجهة المستخدم الرسومية اللطيفة ولكن احصل على موقع قابل للتنفيذ الخاص بك خارج حزمة Syncthing.app ، فيمكن كتابة معلمة التكوين Executable يدويًا مع أداة سطر الأوامر defaults باستخدام Terminal Buildin أو ITERM2. يجب تغيير الوسيطات الأخيرة إلى تطبيق Syncthing 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. لمزيد من المعلومات حول Cocoapods اقرأ أدلة Cocoapods.
يستخدم الإصدار القابل للتنفيذ المزامنة الشحن مع رقم -<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 فقط إصدارات مستقرة ولا توجد مرشحين لإطلاق خدمة التزامن (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 على https://developer.apple.com/documentation/xcode/notarization_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 ، يقوم خادم CI بإجراءات GitHub تلقائيًا بإنشاء تصحيح وإصدار
قم بتنزيل الإصدار يدويًا .dmg من إجراءات github.com التي تم توقيعها بشكل صحيح وتوثيقها
قم بإنشاء إصدار GitHub جديد يدويًا مع علامة v<major>.<minor>.<patch>-<bundle index>
تشغيل نشر Sparkle Updater Appcast.xml. الذي يحول GitHub يطلق JSON إلى ملف appcast.xml Sparkle. (انظر أيضًا وثائق التألق) للدفع إلى المستخدمين.