2011-03-07 9 views
10

Agregué imágenes .png al proyecto Xcode para uso condicional, como hacer capturas de pantalla de una vista Sin embargo, como esto no es necesario para la versión de lanzamiento de la aplicación, me gustaría encontrar una manera de excluirlas utilizando algún tipo de configuraciones para Target. Espero que pueda haber una solución como usar la macro #if DEBUG para la compilación de depuración, que puede funcionar para líneas de código fuente. Pero, en el caso de archivos incluidos en el paquete de proyecto, tengo problemas para encontrar las respuestas.Cómo excluir archivos de imágenes en el paquete de proyectos de Xcode, condicionalmente para la versión de lanzamiento?

+3

Para excluir archivos de compilaciones de producción utilizo la configuración de compilación EXCLUDED_SOURCE_FILE_NAMES descrita en esta publicación de blog: http://twobitlabs.com/2012/01/excluding-files-from-production-xcode-builds/ – ToddH

+0

Gracias por la respuesta correcta. Esta solución basada en configuración de compilación es lo que estaba buscando en lugar de uno basado en el objetivo. – petershine

Respuesta

16

En Xcode 3, hay una vista sobre el editor que enumera los archivos en el proyecto. Hay una casilla de verificación en el lado derecho de esa vista para cada archivo, y puede desmarcar la casilla para eliminar el archivo del objetivo actual.

En Xcode 4, muestre el Navegador de proyectos en el lado izquierdo de la ventana y muestre el Inspector de archivos en el lado derecho, en el área de Utilidades. Cuando selecciona un archivo, verá un área de Membresía objetivo con una lista de objetivos y casillas de verificación. Si desea excluir el archivo de un objetivo en particular, desmarque la casilla junto a ese objetivo. Aquí hay una foto:

enter image description here

Esto es un poco diferente de la exclusión de archivos de sólo algunos construye de un solo objetivo. Aún así, creo que es el mecanismo más simple de usar para la situación que describes. Simplemente duplica tu objetivo existente para que tengas una copia que puedas usar para hacer capturas de pantalla. Elimine los archivos adicionales de su objetivo de producción, pero déjelos en el destino de captura de pantalla, como se describe arriba.

+0

Gracias por esta útil respuesta. Estoy bastante contento de que mi punto de recompensa no sea en vano. ¿Te importaría permitirme seguirte en Twitter o GitHub? – petershine

+0

Eres amable y no me importaría, pero no twitteo. Es una distracción más que no necesito. ;-) Me alegro de poder ayudar, sin embargo. – Caleb

+1

esta respuesta es una perla para mí, pero desde la perspectiva opuesta. Estaba buscando cómo encontrar si se incluyó un archivo en el objetivo. Gracias @Caleb – sdjuan

3

Las entradas de un objetivo son las mismas para todas las compilaciones, por lo que no hay ninguna casilla que lo haga por usted.

Todo lo que realmente sucede es que los archivos de imagen como .png o lo que sea se agregan a la fase de copia de recursos del paquete. Puede eliminarlos de esa fase y, en su lugar, crear una fase de creación de scripts personalizada utilizando un script de shell.

Imprimirá por defecto todas las variables de entorno establecidas por xcode, desde allí podrá escribir un script que solo realice la copia cuando digamos $ {BUILD_STYLE} es 'Debug'.

Probablemente quiera $ {BUILD_STYLE}, $ {CONTENTS_FOLDER_PATH} y $ {INPUT_FILE_PATH} para empezar.

Cuestiones relacionadas