2012-06-15 16 views
35

Estoy usando un área de trabajo donde tengo un proyecto de aplicación principal y luego un proyecto de biblioteca estática que usa la aplicación principal. Quiero que el proyecto de biblioteca estática escupir libX.a en el directorio principal del proyecto de la aplicación, porque quiero empujar este libX.a en mi repositorio de Git.Cómo cambiar el directorio de salida para un destino

El cambio de la configuración de la ruta de compilación para el proyecto lib estático debe ser llevado a su propio repositorio git para que otros no tengan que lidiar con este cambio una y otra vez.

Traté de cambiar 'Build Products Path' a "$ (SRCROOT) /../ SharedData" para mt static lib target pero no tiene ningún efecto.

Gracias!

Respuesta

35
  1. Vaya a Archivo -> Configuración del proyecto.

  2. Haga clic en el botón Avanzado en Ubicación de datos derivados. En la compilación seleccione ubicación personalizada y elija su directorio de salida. Esto hará que cambie la variable $ (BUILD_DIR) a lo que establezca en ese campo.

  3. Haga clic en "Hecho" y vaya a la configuración de destino. En la ubicación de compilación, ahora puede especificar dónde se generan los resultados en función de esa macro $ (BUILD_DIR).

+2

Esto parece ser un ajuste de XCode, algo que no se puede comprobar en cualquier cvs. – noobular

+0

Esto no parece funcionar si mi proyecto es 'A' y quiero mi ejecutable en' A/release'; Solo puedo ponerlo bajo 'A/release/Release'. ¿Alguna pista? –

30

Instrucciones actualizadas para Xcode 5 uptill 6.3.

1. Go to File -> Project settings 
    2. Click the Advanced button 
    3. Select "Custom" and select "Relative to Workspace" in the pull down 
    4. click done, done 

¡Y listo!

+5

Archivo -> Configuración de área de trabajo ... –

+2

Esto no funcionará para proyectos grandes, ya que esta configuración se guarda en la carpeta xcuserdatad específica del usuario. – Pavel

+1

los cambios en la configuración del espacio de trabajo no se muestran en git – hariszaman

18

Aquí hay una solución que puedes verificar en el control de código fuente, y que he verificado que funciona con Xcode 6.2.

  1. añadir un archivo .xcconfig a su proyecto - ver this SO question for details.
  2. En el archivo .xcconfig, especifique las variables de entorno estándar de Xcode PROJECT_TEMP_DIR, CONFIGURATION_BUILD_DIR y BUILT_PRODUCTS_DIR a punto a donde desea que los archivos, para cerrar.

de xcconfig format reference lectura de Apple, parecería que objRoot simplemente anulando y SYMROOT en el archivo .xcconfig que hacer el truco - pero en mis pruebas en Xcode 6.2, cambiándolos no tiene ningún efecto. Debe cambiar esas tres variables de entorno específicas enumeradas anteriormente.

Esto es lo que puse en un archivo de 6,2 .xcconfig Xcode archivos ejecutables de manera intermedios y entran en sus lugares "tradicionales":

// Intermediate build files go here 
PROJECT_TEMP_DIR = $(SRCROOT)/build/$(PROJECT_NAME).build 

// Build-related files for the active build configuration go here 
CONFIGURATION_BUILD_DIR = $(SRCROOT)/build/$CONFIGURATION 

// The final product executables and other build products go here 
BUILT_PRODUCTS_DIR = $(SRCROOT)/build/$CONFIGURATION 
+2

¡Esta es la única respuesta correcta! – Pavel

+0

Como nota al margen, estoy seguro de que [es un error en XCode] (https://forums.developer.apple.com/message/234817/) donde se evalúan OBJROOT y SYMROOT antes de que se consideren las configuraciones de los archivos del proyecto . – Pavel

2

Si desea cambiar la ruta de compilación de su proyecto puede cambiar usando los siguientes pasos.

1) Elija Xcode> Preferencias y haga clic en Ubicaciones.

2) Haga clic en el botón Avanzado para la configuración de Datos derivados.

3) Seleccione una ubicación de compilación entre las opciones disponibles y haga clic en Listo.

ex. si elige 'costumbre' de opción Generar Ubicación su construcción se generan en '/ Usuarios/XYZ/Escritorio/Construir/Productos' Ubicación

+0

Esto cambia la ruta de compilación para todos los proyectos. –

0

En Xcode 8.x puedo configurar el directorio derivedData con un comando opción de línea en un archivo .sh que crea el proyecto. Los desarrolladores pueden compilar en sus directorios de usuarios (preferencia Xcode predeterminada), mientras que la compilación oficial crea la compilación en el área tradicional:

SCRIPT_DIR = "$ (cd" $ (dirname "$ {BASH_SOURCE [0]}") " & & PWD)"

xcodebuild -workspace -Esquema 'mi proyecto' -Configuración de lanzamiento -derivedDataPath '$ SCRIPT_DIR/build'

0

de acuerdo a @ gp-codificador 'mi project.xcworkspace', el escenario será siguiente para xcode 9. * Siga el paso que se muestra en la imagen

enter image description hereenter image description hereenter image description here

Y No Hecho

Eso es todo, gracias

+0

O puede seleccionar Legacy, luego especifique por configuración de destino estableciendo Build Products Path (en la configuración de compilación de su propio destino) en relación con su directorio de proyecto. – ideawu

Cuestiones relacionadas