2011-04-16 14 views
9

He intentado agregar una fase de compilación de Copiar archivos a una plantilla de proyecto para Xcode 4 pero no puedo encontrar la manera de agregar archivos para copiar.Cualquiera tuvo éxito con las fases de compilación Copiar archivos en plantillas de Xcode 4

Esto es lo que agregué a mi objetivo. Los cambios en DstPath, DstSubfolderSpec y RunOnlyForDeploymentPostprocessing se reflejan en los proyectos creados a partir de la plantilla. Pero no hay archivos. He intentado agregar una matriz usando claves llamadas Archivos, Definiciones, Nodos, nada tiene ningún efecto.

¡Cualquier pensamiento o idea sería muy apreciada!

 <key>BuildPhases</key> 
     <array> 
      <dict> 
       <key>Class</key> 
       <string>CopyFiles</string> 
       <key>DstPath</key> 
       <string></string> 
       <key>DstSubfolderSpec</key> 
       <string>10</string> 
       <key>RunOnlyForDeploymentPostprocessing</key> 
       <string>NO</string> 
      </dict> 
     </array> 
+0

¿Hay alguna razón para hacerlo en XML y no a través de la GUI? –

+0

Él está creando una plantilla XCode. – Jano

+0

lo mejor que pude encontrar fue una publicación en el foro de desarrolladores citando a alguien "enterado" en la WWDC indicando que esto no es compatible; esto coincidiría con mi intento de encontrar un nombre de cadena apropiado a través de 'cadenas DevToolsCore' que correspondería a la cadena reconocida necesaria en el plist: presenta las cadenas DstPath y DstSubfolderSpec cerca de la cadena 'Copiar archivos', pero no hay una cadena que se referiría a una matriz de archivos como se genera cuando haces esto gráficamente en Xcode. Probé la cadena 'buildFiles', pero no fue reconocida por esa parte de .plist. –

Respuesta

0

No sé la respuesta, pero esto puede ser una solución. Ejecuta un script con cada compilación.

<key>Targets</key> 
<array> 
    <dict> 
     <key>BuildPhases</key> 
     <array> 
      <dict> 
       <key>Class</key> 
       <string>ShellScript</string> 
       <key>ShellPath</key> 
       <string>/bin/sh</string> 
       <key>ShellScript</key> 
       <string>~/hello.sh</string> 
      </dict> 

enter image description here

Tenga en cuenta que la ruta al script es absoluta. Tal vez pueda definir una ruta con PathTypeGroup para configurarla en relación con un grupo dentro del proyecto (no lo intenté).

DstPath es la ruta de destino de los archivos para copiar (supongo). No sé qué es DstSubfolderSpec, solo aparece en la herramienta de línea de comandos con un valor de 0. Supongo que tampoco lo sabe.

1

hasta ahora tengo este trabajo:

<dict> 
    <key>Class</key> 
    <string>CopyFiles</string> 
    <key>DstPath</key> 
    <string>www</string> 
    <key>DstSubfolderSpec</key> 
    <string>7</string> 

Esto crea una CopyFiles construyen fase que copia archivos a la carpeta "www" dentro de los recursos. (Esto daría como resultado que esos archivos vivan en/www en el paquete de la aplicación.) Sin embargo, aún no he podido especificar qué archivos se copian. Esto es similar a this question

0

he encontrado una pequeña joya escondida en una secuencia de comandos Python raro que dio una explicación "mejor" (en oposición a la nada) de la misteriosaDstSubfolderSpec ...

# dstSubfolderSpec property value used in a PBXCopyFilesBuildPhase object. 
'BUILT_PRODUCTS_DIR': 16, # Products Directory 
: 1,      # Wrapper 
: 6,      # Executables: 6 
: 7,      # Resources 
: 15,      # Java Resources 
: 10,      # Frameworks 
: 11,      # Shared Frameworks 
: 12,      # Shared Support 
: 13,      # PlugIns 

Hay en realidad bastante un poco de información interesante en el guión, (aparentemente es parte de pythonwebkit, o algo así) .. but regardless, I posted a gist of it here si quieres probar y obtener cualquier otra cosita útil.

Cuestiones relacionadas