macOS companion app
مجوزهای macOS
مجوزدهیهای macOS شکنندهاند. TCC یک مجوز را به امضای کد برنامه، شناسهٔ بسته و مسیر آن روی دیسک مرتبط میکند. اگر هرکدام از این موارد تغییر کند، macOS برنامه را جدید تلقی میکند و ممکن است درخواستها را حذف یا پنهان کند.
الزامات مجوزهای پایدار
- مسیر یکسان: برنامه را از مکانی ثابت اجرا کنید (برای OpenClaw،
dist/OpenClaw.app). - شناسهٔ بستهٔ یکسان: شناسهٔ بستهٔ OpenClaw برابر
ai.openclaw.macاست؛ تغییر آن یک هویت مجوز جدید ایجاد میکند. - برنامهٔ امضاشده: مجوزهای بیلدهای بدون امضا یا دارای امضای موقت ماندگار نمیمانند.
- امضای ثابت: از یک گواهی واقعی Apple Development یا Developer ID استفاده کنید تا امضا در بیلدهای مجدد ثابت بماند.
امضاهای موقت در هر بیلد یک هویت جدید ایجاد میکنند. macOS مجوزهای قبلی را فراموش میکند و ممکن است درخواستها تا زمان پاکشدن ورودیهای منسوخ کاملاً ناپدید شوند.
مجوزهای دسترسپذیری برای محیطهای اجرای Node و CLI
بهجای یک فایل اجرایی عمومی node، ترجیحاً مجوز دسترسپذیری را به OpenClaw.app، Peekaboo.app یا یک برنامهٔ کمکی امضاشدهٔ دیگر با شناسهٔ بستهٔ مستقل بدهید.
TCC در macOS مجوز دسترسپذیری را به هویت کد فرایندی میدهد که مشاهده میکند. اگر یک گردشکار Homebrew، nvm، pnpm یا npm باعث شود یک فایل اجرایی مشترک node مجوز دسترسپذیری دریافت کند، هر بستهٔ JavaScript که از طریق همان فایل اجرایی راهاندازی شود ممکن است امتیازهای خودکارسازی رابط گرافیکی را به ارث ببرد.
یک ورودی node در System Settings را مجوزی گسترده برای آن محیط اجرای Node در نظر بگیرید، نه مجوزی برای یک بستهٔ npm. از دادن مجوز دسترسپذیری به node خودداری کنید، مگر اینکه به تمام اسکریپتها و بستههایی که از طریق دقیقاً همان نصب Node راهاندازی میشوند اعتماد داشته باشید.
تأیید دسترسپذیری، اشتراکگذاری فعالیت را فعال نمیکند. Settings -> Permissions -> Active computer detection کنترل جداگانهای است که بهطور پیشفرض غیرفعال است و برای اشتراکگذاری مدت محدود بیکاری با Gateway شما بهکار میرود. غیرفعالکردن آن، فعالیت نگهداریشده را بدون لغو دسترسپذیری یا قطع اتصال Node پاک میکند.
اگر بهاشتباه به node مجوز دسترسپذیری دادهاید، آن ورودی را از System Settings -> Privacy & Security -> Accessibility حذف کنید. سپس مجوز را به برنامه یا ابزار کمکی امضاشدهای بدهید که باید مالک خودکارسازی رابط کاربری باشد.
چکلیست بازیابی هنگام ناپدیدشدن درخواستها
- از برنامه خارج شوید.
- ورودی برنامه را در System Settings -> Privacy & Security حذف کنید.
- برنامه را دوباره از همان مسیر اجرا کنید و مجوزها را مجدداً بدهید.
- اگر درخواست همچنان ظاهر نمیشود، ورودیهای TCC را با
tccutilبازنشانی کنید و دوباره امتحان کنید. - برخی مجوزها فقط پس از راهاندازی مجدد کامل macOS دوباره ظاهر میشوند.
نمونههای بازنشانی (با استفاده از شناسهٔ بستهٔ OpenClaw، ai.openclaw.mac):
sudo tccutil reset Accessibility ai.openclaw.macsudo tccutil reset ScreenCapture ai.openclaw.macsudo tccutil reset AppleEventsمجوزهای فایلها و پوشهها (Desktop/Documents/Downloads)
macOS ممکن است دسترسی فرایندهای ترمینال یا پسزمینه به Desktop، Documents و Downloads را نیز محدود کند. اگر خواندن فایلها یا فهرستکردن دایرکتوریها متوقف میشود، به همان بستر فرایندی که عملیات فایل را انجام میدهد دسترسی بدهید (برای مثال Terminal/iTerm، برنامهای که توسط LaunchAgent راهاندازی شده است، یا فرایند SSH).
راهحل موقت: اگر میخواهید از دادن مجوز به هر پوشه اجتناب کنید، فایلها را به فضای کاری OpenClaw (~/.openclaw/workspace) منتقل کنید.
اگر در حال آزمایش مجوزها هستید، همیشه با یک گواهی واقعی امضا کنید. بیلدهای دارای امضای موقت فقط برای اجراهای سریع محلی که مجوزها اهمیتی ندارند قابلقبولاند.