2011-01-20 8 views
9

Ho difficoltà a copiare le cartelle nei progetti XCode con AppleScript. Senza Applescript, trascino la cartella in Xcode.applecript per copiare le cartelle in Xcode?

Ho usato un gestore Applescript simile, come quello mostrato di seguito, per copiare le librerie in XCode utilizzando "wrapper.library" per il tipo di file. Di seguito sto usando "wrapper.folder" per provare a copiare una cartella in XCode e non funziona.

on addFolder(fname, fpath) 
    tell application "Xcode" 
    tell project "Unity-iPhone" 
    set my_targets to targets 
    set s_target to item 1 of my_targets 
    set compile_phase to compile sources phase of s_target 
    set link_phase to get link binary with libraries phase of s_target 
    tell root group 
    set a to make new file reference with properties {full path:fpath & fname, name:fname, file type:"wrapper.folder"} 
    add a to link_phase 
    end tell 
    end tell 
    end tell 
    end addFolder 

Qualcuno ha qualche idea su che cosa manco o come scrivere un AppleScript per copiare una cartella in XCode?

+0

Sono curioso di sapere come hai risolto questo problema ... –

+0

Questo plugin Xcode potrebbe aiutare: https://github.com/larsxschneider/Xcode-Scripting-Interface –

+1

Non ho mai trovato una soluzione tranne che per spostare le cartelle manualmente. So che può essere fatto, perché ho usato Applescripts compilati che possono spostare le cartelle. –

risposta

1

Si sta lavorando per me:

--this is for xcode 3.x 
tell application "Xcode" 
    tell active project document 
     tell root group 
      --Note: Large folders make it seems that the script is hanging. Give it some time to list all items in the given folder. 
      make new file reference with properties {name:"My Desktop Folder", full path:(POSIX path of (path to desktop folder)), file type:"wrapper.folder"} 
     end tell 
    end tell 
end tell 

Il codice per Xcode 4 è un po 'diverso

--this is for Xcode 4.x 
tell application "Xcode" 
    tell project 1 
     tell root group 
      --Note: big folders make it seems that the application (not the script like in Xcode 3) is hanging. Give it some time to list all items in the given folder. 
      make new file reference with properties {name:"My Desktop Folder", full path:(POSIX path of (path to desktop folder)), file kind:"folder"} 
     end tell 
    end tell 
end tell 

L'opzione 'copiare nella cartella di destinazione, se necessario,' basta copiare i file al progetto (se non sono già lì) e quindi creare un riferimento ai file copiati invece dei file originali. Puoi fare lo stesso con il Finder o un comando di shell come cp o idem, quindi creare un riferimento ai file copiati. Quindi non utilizzerei il percorso completo ma i percorsi relativi. Con percorsi relativi lo spostamento del progetto in un'altra cartella non ti darà alcun problema.

+0

Interessante. Ciò aggiunge un riferimento al file di cartella al progetto. (Si noti che l'icona della cartella è blu, non gialla.) Tuttavia, questi file non vengono aggiunti alla fase di creazione o copia del progetto. – ThomasW