Thoát khỏi Applescript có lỗi khi chạy qua launchd


3

Tôi có một applescript chạy rất đẹp trong Script Editor cũng như từ một osascriptlệnh tại Terminal. Tập lệnh nói chuyện với Reminder.app để chuyển các mục nhắc nhở iCloud sang một vài tập lệnh phân tích cú pháp trên máy mac của tôi.

Nhưng khi tôi cố gắng khởi chạy nó, một vài lỗi xuất hiện trong nhật ký hệ thống:

Aug 11 16:43:07 machinename osascript[19678]: Performance: Please update this scripting addition to supply a value for ThreadSafe for each event handler: "/Library/ScriptingAdditions/FITS.osax"
Aug 11 16:43:07 machinename osascript[19678]: Performance: Please update this scripting addition to supply a value for ThreadSafe for each event handler: "/Library/ScriptingAdditions/SIMBL.osax"
Aug 11 16:43:07 machinename tccd[3421]: Unable to prompt for client without display name (osascript)
Aug 11 16:43:07 machinename Reminders[18838]: Error: Event Not Permitted for command Intrinsics.get
    Direct Parameter: <NSPropertySpecifier: scriptingReminders of scriptingLists named "Today" of scriptingAccounts named "iCloud">
    Receivers: <NSPropertySpecifier: scriptingReminders of scriptingLists named "Today" of scriptingAccounts named "iCloud">
    Arguments:     {
    }
Aug 11 16:43:07 machinename com.apple.xpc.launchd[1] (local.reminders.taskpaper.sync[19678]): Service exited with abnormal code: 1

Lỗi hiệu suất SIMBL tôi tin là vô hại - đây là một vấn đề đã biết .

Tôi cũng giả sử như vậy cho lỗi FITS.

Nhưng tôi cần một số trợ giúp để giải quyết các lỗi tccd và Nhắc nhở .... Nghe có vẻ như tôi chỉ đơn giản là cần cung cấp thêm quyền nếu tập lệnh sẽ được chạy qua launchd.

Đây cũng là tập tin plist, nếu nó giúp:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
            <string>local.reminders.taskpaper.sync</string>
        <key>ProgramArguments</key>
            <array>
                <string>osascript</string>
                <string>/Users/eck/Library/Scripts/reminders_to_taskpaper.scpt</string>
            </array>
        <key>StartInterval</key>
            <integer>600</integer>
    </dict>
</plist>

1
Trong Tùy chọn hệ thống của bạn trong Bảo mật & quyền riêng tư, bạn hiển thị gì dưới Trợ năng cho các ứng dụng được phép kiểm soát máy tính của bạn? Có thể tìm thấy một câu trả lời ở đó.
bjbk

1
@bjbk: ý kiến ​​hay! Thật vậy, những người khác đã nhận được osascriptvà các tập lệnh shell khác vào danh sách truy cập hỗ trợ, mặc dù điều này liên quan đến việc "hack" cơ sở dữ liệu sqlite3 của nó (xem tại đâyđây nếu bạn quan tâm). Hướng tới mục tiêu đó, tôi vẫn đang kết nối với tệp db. Một vài khả năng cho điều đó ...
yardyardz

Câu trả lời:


2

Như bjbk đã nhận xét, vấn đề là osascript không có quyền truy cập hỗ trợ. Trong khi đó là dễ dàng để thêm .appchương trình vào danh sách này ( System Preferences> Security & Privacy> Accessibility), OS X không cho phép mã nhị phân sẽ được bổ sung thông qua GUI. Xem blog của Jacob Palmela để biết cách thêm chương trình qua dòng lệnh hoặc chỉ sao chép và dán lệnh sau, thay thế trong đường dẫn của chương trình sẽ được thêm vào khi được chỉ định trước khi thực hiện:

sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "INSERT or REPLACE INTO access VALUES('kTCCServiceAccessibility','PROGRAM-TO-BE-ADDED',1,1,1,NULL)"

sudo là cần thiết bởi vì tệp db sqlite3 được sở hữu bởi root.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.