Xcode 4 – directorio de salida de comstackción

Tengo problemas para configurar / localizar mis archivos de salida en Xcode4 (beta 5). Se ubican en algún lugar de ~/Library/Developer/ugly_path/... Ni siquiera puedo seleccionar “mostrar en el buscador” en mis productos. Es lo mismo para un simple proyecto de C, una herramienta de Fundación e incluso un paquete de Cocoa. Una depuración funciona bien.

¿Podría indicarme dónde y cómo configurar / crear directorios de salida? (Sé que suena tonto, he estado codificando en Xcode3 durante meses, pero no puedo entenderlo en Xcode4 beta).

Muchas gracias.

Desde el menú de Xcode en la parte superior, haz clic en preferencias, selecciona la pestaña de ubicaciones, mira la opción de ubicación de comstackción.

Tienes 2 opciones:

  1. Coloque los productos de comstackción en la ubicación de datos derivados (recomendado)
  2. Coloque productos de construcción en ubicaciones especificadas por objectives

Actualización: en xcode 4.6.2 debe hacer clic en el botón avanzado en el lado derecho debajo del campo de texto de datos derivados. Build Location select legacy.

Si comstack desde línea de comandos, puede establecer el directorio de salida de la siguiente manera:

 xcodebuild -workspace 'WORKSPACE_NAME.xcworkspace' \ -scheme 'SCHEME_NAME' \ -configuration 'Release' \ -sdk iphoneos7.0 CONFIGURATION_BUILD_DIR='OUTPUT_DIRECTORY' 

En Xcode 5: menú Xcode > Preferencias … elemento> pestaña Ubicaciones > subpestaña Ubicaciones > botón Avanzada … > Opción personalizada .

Luego elija, por ejemplo, Relativo al Espacio de trabajo .

Si tiene la configuración de Xcode 4 Build Location establecida en “Colocar productos de construcción en la ubicación de datos derivados (recomendado), debe ubicarse en ~ / Library / Developer / Xcode / DerivedData. Este directorio tendrá su proyecto allí como un directorio, el El nombre del proyecto se agregará con un montón de letras generadas, así que fíjate bien.

Guarde los datos derivados pero use el DSTROOT para especificar el destino.

Use DEPLOYMENT_LOCATION para forzar la implementación.

Utilice la ruta DWARF_DSYM_FOLDER_PATH no documentada para copiar también el dSYM.

Esto le permite usar la ubicación de datos derivados de xcodebuild y no tener que hacer cosas alocadas para encontrar la aplicación.

 xcodebuild -sdk "iphoneos" -workspace Foo.xcworkspace -scheme Foo -configuration "Debug" DEPLOYMENT_LOCATION=YES DSTROOT=tmp DWARF_DSYM_FOLDER_PATH=tmp build 

Siempre puede encontrar el directorio de comstackción mirando en el visor de registro de comstackción y copiando la ruta en una ventana de terminal.

Utilizo esto para analizar mis paquetes de .app de iOS antes de que se instalen para asegurarme de que no se incluyan archivos extraviados.

Para cualquiera que desee encontrar el directorio de comstackción a partir de un script pero no quiera cambiarlo, ejecute lo siguiente para obtener una lista de todas las configuraciones de comstackción que apuntan a una carpeta en DerivedData:

 xcodebuild -showBuildSettings | grep DerivedData 

Si ejecuta objectives y esquemas personalizados, póngalos también allí:

 xcodebuild -workspace "Foo.xcworkspace" -scheme "Bar" -sdk iphonesimulator -configuration Debug -showBuildSettings | grep DerivedData 

Mire la salida para localizar la salida de configuración que desea y luego:

 xcodebuild -showBuildSettings | grep SYMROOT | cut -d "=" -f 2 - | sed 's/^ *//' 

La última parte corta la cuerda en el signo igual y luego recorta el espacio en blanco al comienzo.

Si usa las nuevas áreas de trabajo de Xcode4, puede cambiar la ubicación de datos derivados en Archivo -> Configuración de área de trabajo …

Otra cosa que debes comprobar antes de comenzar a jugar con las preferencias de Xcode es:

Seleccione su objective y vaya a Configuración de comstackción> Envasado> Extensión de envoltura

El valor debería ser: aplicación

Si no hace doble clic en él y escribe “aplicación” sin los qoutes.

Esto fue tan molesto Abra su proyecto, haga clic en Target, pestaña Abrir fases de comstackción. Verifique sus recursos de paquete de copia para cualquier artículo rojo.