2 votos

AppleScript para añadir archivos a una aplicación iOS en iTunes

Sé que es posible escribir un AppleScript para añadir archivos de música y vídeo a la biblioteca de iTunes. ¿Es posible también escribir un AppleScript para añadir archivos a las aplicaciones de iOS que utilizan el intercambio de archivos?

Por ejemplo, tengo una aplicación para el iPad llamada Comic Zeal, y normalmente añado archivos a ella arrastrándolos a iTunes. Me gustaría escribir un script para añadir archivos a Comic Zeal desde la línea de comandos.

1voto

Boro Puntos 496

Por lo que puedo ver en el diccionario de AppleScript de iTunes, no hay soporte para hacer scripts de nada relacionado con las aplicaciones de iOS. Lo siento.

Una posible solución:

Si la aplicación, y tu Mac, son compatibles con iCloud, configúralo en ambos y busca dentro de "~/Library/Mobile Documents/" en tu Mac.

Ahí debería haber una carpeta correspondiente a cada app que tengas activada en iCloud. Puede que tengas que buscar en la estructura de subcarpetas para ver exactamente dónde tienen que ir los archivos que quieres añadir, pero una vez que lo sepas, puedes escribir tu script para dirigirte a esa ubicación.

Cuando tu script añada un archivo a esa ubicación, se sincronizará a través de iCloud. Yo utilizo este truco todo el tiempo para meter archivos en mi aplicación GoodReader.

Ten en cuenta que las aplicaciones de iOS no siempre se sincronizan con iCloud en segundo plano. En el caso de GoodReader necesito abrirla para que los cambios se actualicen.

0voto

macmadness86 Puntos 106

Aunque este post es antiguo, me gustaría añadir algunas cosas. Soy capaz de utilizar AppleScripts para enviar cosas a mi dispositivo, pero su dispositivo necesita ser jailbroken (AKA rooted)

Así es como funciona: Ejecuta Cydia e instala OpenSSH. En tu Mac, ejecuta uno de los siguientes comandos para generar una clave ssh rsa o dsa. (He utilizado rsa, porque es más reciente)

ssh-keygen -t rsa
ssh-keygen -t dsa

Se creará un archivo en su carpeta /Usuario/[su nombre de usuario]/.ssh (también conocido como ~/.ssh o $HOME/.ssh ). Ponga el id_rsa.pub o el id_dsa.pub en su ipad en algún lugar, tal vez fuera del Root con

scp ~/.ssh/id_rsa.pub root@nameofipad:/

A continuación, inicie la sesión en su ipad (sensible a las mayúsculas) Ignore todas las quejas y simplemente diga que sí, introduzca Alpine para la contraseña (si no la ha cambiado (cambie con el comando passwd desde el prompt Root del ipad):

ssh root@nameofipad

Ahora vamos a tomar la información almacenada en esta clave pública ssh y escribirla en un archivo en su iPad. Primero tenemos que hacer la carpeta en el iPad y luego escribir la información.

mkdir ~/.ssh && cat /rsa.pub >> ~/.ssh/authorized_keys

Ahora el archivo authorized_keys contendrá la clave de su Mac. Un último paso importante es establecer los permisos correctos para el archivo authorized_keys:

chmod 666 ~/.ssh/authorized_keys

AppleScript

Ahora puedes enviar archivos a tu dispositivo a través de AppleScript. Por ejemplo, suelo editar archivos PDF con la aplicación de iOS iAnnotate PDF. Usé iFile en el iPad para identificar la carpeta de la aplicación y ejecuté el siguiente AppleScript para enviar los archivos a su carpeta de documentos:

tell application "System Events"
    set ProcessList to name of every process
    if "Skim" is in ProcessList then
        tell application "Skim"
            if document 1 exists then
                set the_file to POSIX path of (get file of document 1 as text)
                set my_script to "scp -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no " & the_file & " root@JokosiPad.local:/User/Applications/01F8F1E6-BA09-412B-8069-355E7717F409/Documents"
                do shell script my_script
            end if
        end tell
    end if
end tell

Este script tomará cualquier archivo que esté leyendo en Skim (lector de PDF) y lo enviará al iPad. En el iPad (y en el iPhone) puedo iniciar iAnnotate e ir a la carpeta iTunes Sharing y ver el archivo. Es realmente genial y evita la estúpida mierda de Apple de sólo iTunes.

Permítanme explicar lo obvio, y luego lo no tan obvio:

Obviamente

  1. establecer el script a la variable mi_script
  2. ejecutar myscript

No es obvio

Le decimos a scp que escriba la información del archivo host en /dev/null que básicamente es un dispositivo dedicado que es como un agujero negro. Todo lo que escribes en él desaparece. Sólo tenemos que hacer feliz a scp y dejar que escriba en algo. La otra opción, -o StrictHostKeyChecking=no hace que la conexión no se confirme con "¿Está seguro de que quiere conectarse? Esto permite que AppleScript tenga acceso sin obstáculos a su iPad.

Ten en cuenta que el nombre de host de tu iPad (el mío es JokosiPad) se puede encontrar fácilmente yendo a la aplicación de Ajustes y haciendo clic en general y acerca de. El registro "Nombre" contiene el nombre de host a utilizar como JokosiPad.local en lugar de memorizar la dirección IP (que puede cambiar).

¡Espero que esto ayude a alguien!

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