Community translations by veiseule.ai — Help improve them on Crowdin
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 چیک کریں۔
  • xcrun notarytool کے لیے نوٹری اسناد (کی چین پروفائل یا API کلید)، اگر آپ Gatekeeper-محفوظ DMG/zip تقسیم چاہتے ہیں۔
  • ہم openclaw-notary نامی Keychain پروفائل استعمال کرتے ہیں، جو App Store Connect API کلید کے env vars سے آپ کے شیل پروفائل میں بنایا گیا ہے:
    • 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 کی deps انسٹال ہوں (pnpm install --config.node-linker=hoisted
  • Sparkle ٹولز SwiftPM کے ذریعے خودکار طور پر apps/macos/.build/artifacts/sparkle/Sparkle/bin/ پر حاصل کیے جاتے ہیں (sign_update, generate_appcast، وغیرہ)۔

بلڈ اور پیکیج

نوٹس:

  • APP_BUILD، CFBundleVersion/sparkle:version سے میپ ہوتا ہے؛ اسے عددی اور یک سمت (monotonic) رکھیں (-beta نہیں)، ورنہ Sparkle اسے برابر سمجھتا ہے۔
  • ڈیفالٹ طور پر موجودہ آرکیٹیکچر ($(uname -m)) استعمال ہوتا ہے۔ ریلیز/یونیورسل بلڈز کے لیے BUILD_ARCHS="arm64 x86_64" (یا BUILD_ARCHS=all) سیٹ کریں۔
  • ریلیز آرٹیفیکٹس (zip + DMG + notarization) کے لیے scripts/package-mac-dist.sh استعمال کریں۔ لوکل/ڈیولپمنٹ پیکیجنگ کے لیے scripts/package-mac-app.sh استعمال کریں۔
# From repo root; set release IDs so Sparkle feed is enabled.
# APP_BUILD must be numeric + monotonic for Sparkle compare.
BUNDLE_ID=bot.molt.mac \
APP_VERSION=2026.2.9 \
APP_BUILD="$(git rev-list --count HEAD)" \
BUILD_CONFIG=release \
SIGN_IDENTITY="Developer ID Application: <Developer Name> (<TEAMID>)" \
scripts/package-mac-app.sh

# Zip for distribution (includes resource forks for Sparkle delta support)
ditto -c -k --sequesterRsrc --keepParent dist/OpenClaw.app dist/OpenClaw-2026.2.9.zip

# Optional: also build a styled DMG for humans (drag to /Applications)
scripts/create-dmg.sh dist/OpenClaw.app dist/OpenClaw-2026.2.9.dmg

# Recommended: build + notarize/staple zip + DMG
# First, create a keychain profile once:
#   xcrun notarytool store-credentials "openclaw-notary" \
#     --apple-id "<apple-id>" --team-id "<team-id>" --password "<app-specific-password>"
NOTARIZE=1 NOTARYTOOL_PROFILE=openclaw-notary \
BUNDLE_ID=bot.molt.mac \
APP_VERSION=2026.2.9 \
APP_BUILD="$(git rev-list --count HEAD)" \
BUILD_CONFIG=release \
SIGN_IDENTITY="Developer ID Application: <Developer Name> (<TEAMID>)" \
scripts/package-mac-dist.sh

# Optional: ship dSYM alongside the release
ditto -c -k --keepParent apps/macos/.build/release/OpenClaw.app.dSYM dist/OpenClaw-2026.2.9.dSYM.zip

Appcast اندراج

ریلیز نوٹ جنریٹر استعمال کریں تاکہ Sparkle فارمیٹ شدہ HTML نوٹس رینڈر کرے:

SPARKLE_PRIVATE_KEY_FILE=/path/to/ed25519-private-key scripts/make_appcast.sh dist/OpenClaw-2026.2.9.zip https://raw.githubusercontent.com/openclaw/openclaw/main/appcast.xml

CHANGELOG.md سے HTML ریلیز نوٹس تیار کرتا ہے (بذریعہ scripts/changelog-to-html.sh) اور انہیں appcast انٹری میں ایمبیڈ کرتا ہے۔ شائع کرتے وقت ریلیز اثاثوں (zip + dSYM) کے ساتھ اپ ڈیٹ شدہ appcast.xml کمٹ کریں۔

شائع کریں اور توثیق کریں

  • Upload OpenClaw-2026.2.9.zip (and OpenClaw-2026.2.9.dSYM.zip) to the GitHub release for tag v2026.2.9.
  • یقینی بنائیں کہ raw appcast URL بیک کی ہوئی فیڈ سے مطابقت رکھتا ہو: 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 ریٹرن کرے۔
  • کسی پچھلی پبلک بلڈ پر، About ٹیب سے “Check for Updates…” چلائیں اور تصدیق کریں کہ Sparkle نئی بلڈ کو صاف طریقے سے انسٹال کرتا ہے۔

تعریفِ تکمیل: سائن شدہ ایپ اور appcast شائع ہوں، پرانی انسٹال شدہ ورژن سے اپ ڈیٹ فلو درست کام کرے، اور ریلیز اثاثے GitHub ریلیز کے ساتھ منسلک ہوں۔