> ## Documentation Index
> Fetch the complete documentation index at: https://openclaw.veiseule.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# macOS uchun imzolash

# macOS imzolash (debug build’lar)

Ushbu ilova odatda [`scripts/package-mac-app.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/package-mac-app.sh) orqali yaratiladi, hozirda u:

* sets a stable debug bundle identifier: `ai.openclaw.mac.debug`
* writes the Info.plist with that bundle id (override via `BUNDLE_ID=...`)
* calls [`scripts/codesign-mac-app.sh`](https://github.com/openclaw/openclaw/blob/main/scripts/codesign-mac-app.sh) to sign the main binary and app bundle so macOS treats each rebuild as the same signed bundle and keeps TCC permissions (notifications, accessibility, screen recording, mic, speech). Barqaror ruxsatlar uchun haqiqiy imzolash identifikatoridan foydalaning; ad-hoc opt-in orqali yoqiladi va beqaror (qarang [macOS permissions](/platforms/mac/permissions)).
* odatiy holatda `CODESIGN_TIMESTAMP=auto` dan foydalanadi; u Developer ID imzolari uchun ishonchli vaqt tamgʻalarini yoqadi. Vaqt tamgʻasini oʻtkazib yuborish uchun `CODESIGN_TIMESTAMP=off` ni o‘rnating (oflayn debug buildlar).
* build metamaʼlumotlarini Info.plist ga kiritadi: `OpenClawBuildTimestamp` (UTC) va `OpenClawGitCommit` (qisqa xesh), shunda About oynasi build, git va debug/release kanalini ko‘rsata oladi.
* **Paketlash Node 22+ ni talab qiladi**: skript TS buildlarini va Control UI buildini ishga tushiradi.
* muhitdan `SIGN_IDENTITY` ni o‘qiydi. Har doim sertifikatingiz bilan imzolash uchun shell rc faylingizga `export SIGN_IDENTITY="Apple Development: Your Name (TEAMID)"` (yoki Developer ID Application sertifikatingiz) ni qo‘shing. Ad-hoc imzolash `ALLOW_ADHOC_SIGNING=1` yoki `SIGN_IDENTITY="-"` orqali aniq opt-in talab qiladi (ruxsatlarni sinash uchun tavsiya etilmaydi).
* imzolashdan so‘ng Team ID auditini bajaradi va agar ilova to‘plami ichidagi biror Mach-O boshqa Team ID bilan imzolangan bo‘lsa, xatolik bilan to‘xtaydi. Chetlab o‘tish uchun `SKIP_TEAM_ID_CHECK=1` ni o‘rnating.

## Foydalanish

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
# repo ildizidan
```

### scripts/package-mac-app.sh               # identifikatorni avtomatik tanlaydi; topilmasa xato beradi&#xA;SIGN\_IDENTITY="Developer ID Application: Your Name" scripts/package-mac-app.sh   # haqiqiy sertifikat&#xA;ALLOW\_ADHOC\_SIGNING=1 scripts/package-mac-app.sh    # ad-hoc (ruxsatlar saqlanib qolmaydi)&#xA;SIGN\_IDENTITY="-" scripts/package-mac-app.sh        # aniq ad-hoc (xuddi shu ogohlantirish)&#xA;DISABLE\_LIBRARY\_VALIDATION=1 scripts/package-mac-app.sh   # faqat dev uchun Sparkle Team ID mos kelmasligi bo‘yicha vaqtinchalik yechim

Ad-hoc imzolash eslatmasi `SIGN_IDENTITY="-"` (ad-hoc) bilan imzolaganda, skript avtomatik ravishda **Hardened Runtime** (`--options runtime`) ni o‘chiradi. Bu ilova bir xil Team ID ga ega bo‘lmagan o‘rnatilgan frameworklarni (masalan, Sparkle) yuklashga uringanda qulashlarning oldini olish uchun zarur.

## Ad-hoc imzolar TCC ruxsatlarining saqlanib qolishini ham buzadi; tiklash bosqichlari uchun [macOS permissions](/platforms/mac/permissions) ga qarang.

About uchun build metamaʼlumotlari

* `package-mac-app.sh` to‘plamni quyidagilar bilan tamg‘alaydi:
* `OpenClawBuildTimestamp`: paketlash paytidagi ISO8601 UTC

`OpenClawGitCommit`: qisqa git xeshi (mavjud bo‘lmasa `unknown`) About yorlig‘i ushbu kalitlarni versiya, build sanasi, git commit va debug build ekanligini (`#if DEBUG` orqali) ko‘rsatish uchun o‘qiydi.

## Kod o‘zgarishlaridan so‘ng ushbu qiymatlarni yangilash uchun packagerni ishga tushiring.

TCC permissions are tied to the bundle identifier *and* code signature. TCC ruxsatlari bundle identifikatori *va* kod imzosiga bog‘langan. UUID lari o‘zgarib turadigan imzolanmagan debug buildlar macOS ning har bir qayta builddan keyin ruxsatlarni unutishiga sabab bo‘layotgan edi.
