2 votos

Desencadenar los agentes de lanzamiento para el camino en la aplicación de caja de arena usando WatchPaths no funciona

Estoy tratando de crear un usuario LaunchAgents que dispare un script cuando una ruta gestionada por una aplicación de sandbox cambie (en mi caso, cuando /Library/Containers/com.omnigroup.OmniFocus3/Data/Library/Application\ Support/OmniFocus/OmniFocus.ofocus cambiará).

Para esto, quiero usar el WatchPaths clave de lanzamiento, ya lo intenté con una Acción de Carpeta, pero esos se limitan a la adición de archivos en una carpeta.

He hecho una prueba de trabajo para escuchar en un archivo y una carpeta en mi directorio principal y activar una notificación, por ejemplo:

<?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>me.mayeu.helloworld</string>
        <key>ProgramArguments</key>
        <array>
            <string>/usr/local/bin/terminal-notifier</string>
            <string>-message</string>
            <string>Test</string>      
        </array>
        <key>WatchPaths</key>
        <array>
                <string>/Users/me/watchtest/</string>
        </array>
</dict>
</plist>

Esto funciona bien para cualquier cambio que ocurra bajo el watchtest carpeta.

Pero cuando reemplace el WatchPaths con la base de datos de OmniFocus, esto ya no funciona (no se activa ninguna notificación):

<?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>me.mayeu.script.OmniListen</string>
    <key>ProgramArguments</key>
    <array>
      <string>/usr/local/bin/terminal-notifier</string>
      <string>-message</string>
      <string>Test</string>
    </array>
    <key>WatchPaths</key>
    <array>
      <string>/Users/me/Library/Containers/com.omnigroup.OmniFocus3/Data/Library/Application\ Support/OmniFocus/OmniFocus.ofocus</string>
    </array>
  </dict>
</plist>

Tengo la sensación de que esto se debe al sandboxing de la aplicación. Pero no puedo encontrar ninguna documentación sobre eso.

Estoy usando MacOS Mojave 10.14.2.

1voto

Fyodor Soikin Puntos 7907

Así que encontré la solución. Y no tiene nada que ver con el sandboxing, pero todo tiene que ver con el hecho de que tuve un \ en mi camino porque lo copié de la cáscara.

por ejemplo: .../Data/Library/Application\ Support/... debería ser .../Data/Library/Application Support/... .

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X