Launchd yoluyla çalıştırıldığında Applescript hata ile çıkıyor


3

osascriptTerminal'de bir komutun yanı sıra Komut Dosyası Düzenleyicisi'nde güzelce çalışan bir el kitabım var . Komut, iCloud hatırlatma girişlerini mac'umdaki bir kaç ayrıştırma komut dosyasına geçirmek için Reminders.app ile konuşuyor.

Ancak başlatmayı denediğimde, sistem günlüğünde birkaç hata çıkıyor:

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 Performance hatası zararsız olduğuna inanıyorum - bu bilinen bir konudur .

FITS hatası için de aynı fikirdeyim.

Ama tccd ve Reminders hatalarını çözmek için biraz yardıma ihtiyacım var .... Kulağa komut dosyası çalıştırılacaksa, bir şekilde ekstra izinler vermem gerekiyor gibi geliyor.

İşte yardımcı olur da, plist dosyası:

<?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
Güvenlik ve Gizlilik altındaki Sistem Tercihlerinizde, bilgisayarınızı kontrol etmesine izin verilen uygulamalar için Erişilebilirlik altında ne gösterirsiniz? Orada bir cevap bulabilirim.
bjbk

1
@bjbk: iyi fikir! Aslında, diğerleri osascriptyardımcı erişim listesine girmiş ve diğer kabuk komut dosyalarını almışlardır , ancak bu sqlite3 veritabanını “hacklemeyi” içerir ( ilgileniyorsanız buraya ve buraya bakın ). Bu hedefe doğru hala db dosyasına bağlanmaya çalışıyorum. Bunun için bir kaç olasılık ...
courtyardz

Yanıtlar:


2

BJKK'nın da belirttiği gibi, sorun osascript'in Assistive Access'e sahip olmamasıydı. O eklemek kolay olmakla birlikte .appbu listeye programları ( System Preferences> Security & Privacy> Accessibility), OS X ikili GUI aracılığıyla eklenmesine izin vermez. Programın komut satırı üzerinden nasıl ekleneceği ile ilgili açıklama için Jacob Palmela'nın bloguna bakın ya da eklenmeden önce programın yerine eklenecek olan programın yerine geçerek aşağıdaki komutu kopyalayıp yapıştırı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 sqlite3 db dosyası root aittir çünkü gereklidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.