Skip to main content

إصدار OpenClaw على macOS (Sparkle)

يشحن هذا التطبيق الآن تحديثات Sparkle التلقائية. يجب توقيع بنى الإصدار بمعرّف المطوّر (Developer ID)، وضغطها، ونشرها مع إدخال appcast موقّع.

المسبق

  • تثبيت شهادة Developer ID Application (مثال: Developer ID Application: <Developer Name> (<TEAMID>)).
  • تعيين مسار المفتاح الخاص لـ Sparkle في متغيرات البيئة كـ SPARKLE_PRIVATE_KEY_FILE (المسار إلى مفتاح Sparkle الخاص ed25519؛ المفتاح العام مضمّن في Info.plist). إذا كان مفقودًا، تحقّق من ~/.profile.
  • بيانات اعتماد التوثيق (ملف تعريف سلسلة المفاتيح أو مفتاح API) لـ xcrun notarytool إذا كنت تريد توزيع DMG/zip آمنًا مع Gatekeeper.
    • نستخدم ملف تعريف لسلسلة المفاتيح باسم openclaw-notary، تم إنشاؤه من متغيرات بيئة مفتاح API لـ App Store Connect في ملف تعريف الصدفة لديك:
      • APP_STORE_CONNECT_API_KEY_P8، APP_STORE_CONNECT_KEY_ID، APP_STORE_CONNECT_ISSUER_ID
      • echo "$APP_STORE_CONNECT_API_KEY_P8" | sed 's/\\n/\n/g' > /tmp/openclaw-notary.p8
      • xcrun notarytool store-credentials "openclaw-notary" --key /tmp/openclaw-notary.p8 --key-id "$APP_STORE_CONNECT_KEY_ID" --issuer "$APP_STORE_CONNECT_ISSUER_ID"
  • تثبيت تبعيات pnpm (pnpm install --config.node-linker=hoisted).
  • يتم جلب أدوات Sparkle تلقائيًا عبر SwiftPM في apps/macos/.build/artifacts/sparkle/Sparkle/bin/ (sign_update، generate_appcast، إلخ).

البناء والتغليف

ملاحظات:
  • APP_BUILD يُطابِق CFBundleVersion/sparkle:version؛ اجعله رقميًا ومتزايدًا بشكل رتيب (بدون -beta)، وإلا سيقارنه Sparkle على أنه متساوٍ.
  • الإعداد الافتراضي هو المعمارية الحالية ($(uname -m)). لبنى الإصدار/العالمية، عيّن BUILD_ARCHS="arm64 x86_64" (أو BUILD_ARCHS=all).
  • استخدم scripts/package-mac-dist.sh لأصول الإصدار (zip + DMG + التوثيق). استخدم scripts/package-mac-app.sh للتغليف المحلي/التطويري.

إدخال Appcast

استخدم مولّد ملاحظات الإصدار لكي يعرض Sparkle ملاحظات HTML منسّقة:
يُنشئ ملاحظات إصدار HTML من CHANGELOG.md (عبر scripts/changelog-to-html.sh) ويضمّنها في إدخال appcast. قم بعمل commit للملف المحدّث appcast.xml إلى جانب أصول الإصدار (zip + dSYM) عند النشر.

النشر والتحقق

  • ارفع OpenClaw-2026.2.9.zipOpenClaw-2026.2.9.dSYM.zip) إلى إصدار GitHub للوسم v2026.2.9.
  • تأكّد من أن رابط appcast الخام يطابق الخلاصة المضمّنة: https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml.
  • التحقق من المتعة:
    • curl -I https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml يُرجع 200.
    • curl -I <enclosure url> يُرجع 200 بعد رفع الأصول.
    • على بنية عامة سابقة، شغّل «التحقق من وجود تحديثات…» من تبويب «حول» وتحقق من أن Sparkle يثبت البنية الجديدة بسلاسة.
تعريف الاكتمال: تم نشر التطبيق الموقّع وappcast، ويعمل تدفق التحديث من إصدار أقدم مُثبّت، وتم إرفاق أصول الإصدار بإصدار GitHub.