Applescript виходить із помилкою при запуску через запуск


3

У мене яблучний сценарій чудово працює в редакторі сценаріїв, а також в osascriptкоманді на Терміналі. Сценарій розмовляє з Reminders.app, щоб передати записи нагадування iCloud до декількох сценаріїв розбору на моєму комп'ютері.

Але коли я намагаюся запустити його, у системному журналі з'являється кілька помилок:

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

Помилка виконання SIMBL, на яку я вважаю, є нешкідливою - це відома проблема .

Я припускаю так само і за помилку FITS.

Але мені потрібна допомога у вирішенні помилок tccd та нагадувань .... Мені це здається, що мені просто потрібно якось надати додаткові дозволи, якщо сценарій буде запущений через запуск.

Ось файл plist також, якщо це допомагає:

<?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
Що в налаштуваннях системи в розділі Безпека та конфіденційність, що ви показуєте в розділі Доступність для програм, яким дозволено керувати вашим комп'ютером? Можливо, там знайдемо відповідь.
bjbk

1
@bjbk: хороша ідея! Дійсно, інші потрапили osascriptта інші сценарії оболонки до списку допоміжного доступу, хоча це передбачає "злому" його бази даних sqlite3 (див. Тут і тут, якщо вам це цікаво). З цією метою я все ще працюю над підключенням до db-файлу. Кілька можливостей для цього ...
courtyardz

Відповіді:


2

Як прокоментував bjbk, проблема полягала в тому, що у osascript не було допоміжного доступу. Хоча це легко додати .appпрограми в цей список ( System Preferences> Security & Privacy> Accessibility), OS X не допускає виконувані файли , які будуть додані через графічний інтерфейс. Див . Блог Якоба Палмели про те, як додати програму через командний рядок, або просто скопіювати та вставити наступну команду, замінивши шлях програми, яку потрібно додати там, де зазначено перед виконанням:

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 необхідно, тому що файл sqlite3 db належить root.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.