macOS companion app
مجوزهای macOS
مجوزهای macOS شکننده هستند. TCC یک اعطای مجوز را به امضای کد برنامه، شناسهٔ بسته، و مسیر روی دیسک آن مرتبط میکند. اگر هرکدام از اینها تغییر کنند، macOS برنامه را جدید در نظر میگیرد و ممکن است درخواستهای مجوز را حذف یا پنهان کند.
الزامات برای مجوزهای پایدار
- مسیر یکسان: برنامه را از یک مکان ثابت اجرا کنید (برای OpenClaw،
dist/OpenClaw.app). - شناسهٔ بستهٔ یکسان: تغییر شناسهٔ بسته یک هویت مجوز جدید ایجاد میکند.
- برنامهٔ امضاشده: بیلدهای بدون امضا یا با امضای موقت مجوزها را پایدار نگه نمیدارند.
- امضای سازگار: از یک گواهی واقعی Apple Development یا Developer ID استفاده کنید تا امضا در بازسازیها پایدار بماند.
امضاهای موقت در هر بیلد یک هویت جدید ایجاد میکنند. macOS اعطاهای قبلی را فراموش میکند، و درخواستها ممکن است تا زمانی که ورودیهای قدیمی پاک شوند کاملاً ناپدید شوند.
چکلیست بازیابی وقتی درخواستها ناپدید میشوند
- از برنامه خارج شوید.
- ورودی برنامه را در تنظیمات سیستم -> حریم خصوصی و امنیت حذف کنید.
- برنامه را از همان مسیر دوباره اجرا کنید و مجوزها را دوباره اعطا کنید.
- اگر درخواست هنوز ظاهر نمیشود، ورودیهای TCC را با
tccutilبازنشانی کنید و دوباره تلاش کنید. - برخی مجوزها فقط پس از راهاندازی مجدد کامل macOS دوباره ظاهر میشوند.
نمونههای بازنشانی (شناسهٔ بسته را در صورت نیاز جایگزین کنید):
sudo tccutil reset Accessibility ai.openclaw.mac
sudo tccutil reset ScreenCapture ai.openclaw.mac
sudo tccutil reset AppleEvents
مجوزهای فایلها و پوشهها (Desktop/Documents/Downloads)
macOS ممکن است Desktop، Documents و Downloads را نیز برای فرایندهای ترمینال/پسزمینه محدود کند. اگر خواندن فایلها یا فهرستگیری پوشهها متوقف میشود، به همان زمینهٔ فرایندی که عملیات فایل را انجام میدهد دسترسی بدهید (برای مثال Terminal/iTerm، برنامهٔ اجراشده با LaunchAgent، یا فرایند SSH).
راهحل موقت: اگر میخواهید از اعطای مجوز برای هر پوشه جلوگیری کنید، فایلها را به فضای کاری OpenClaw (~/.openclaw/workspace) منتقل کنید.
اگر در حال آزمایش مجوزها هستید، همیشه با یک گواهی واقعی امضا کنید. بیلدهای موقت فقط برای اجراهای محلی سریع که مجوزها اهمیتی ندارند قابل قبول هستند.