2009-10-12 25 views
8

Sé que muchos de ustedes han experimentado lo mismo en el escenario, donde golpean su cabeza contra la pared preguntándose qué le pasa a su aplicación solo para descubrir que han olvidado guardar su interfaz El constructor cambiaGuardando Interface Builder Cambios al construir en Xcode

Bueno, esto nunca me pasa, porque por algún motivo Xcode me pedirá que guarde los cambios en el Interface Builder cada vez que construya. Un compañero de trabajo y yo estamos tratando de descubrir cómo cambiar esto en su máquina, sin éxito. Debo haber hecho algo en las primeras etapas de mi vida de desarrollo de iphone para configurar esto.

¿Alguien sabe cómo vincular IB con Xcode para que se le pregunte si desea guardar los cambios en los archivos IB durante una compilación?

+1

Acabo de actualizar a Snow Leopard y ahora he perdido mi integración con IB también. –

Respuesta

1

Esto solía funcionar a la perfección para mí también, pero dejó de funcionar con Xcode 3.0. Estoy seguro de que debe haber algún ajuste oculto, ya que funciona para algunos, presumiblemente aquellos que lo tenían activado en Xcode 2.x, sin embargo, no lo he encontrado.

Para los interesados, tengo una solución que implica llamar a un AppleScript simple que guarda todos los documentos IB abiertos.Estos son los pasos:

1) Crear la secuencia de comandos de Apple, algo a lo largo de estas líneas:

tell application "Interface Builder" 
set num to count of documents 
if num > 0 then 
    repeat with i from 1 to num 
    tell document i to save 
    end repeat 
end if 
end tell 

2) guardarlo como Script (en mi ejemplo /Users/myself/Programming/SaveIBFiles.scpt)

3) En su proyecto, cree un nuevo objetivo. Ese es el menú "Proyecto" »" Nuevo objetivo ... ", elija" Otro "» "Destino de script de shell". Lo llamé "Guardar archivos IB"

4) Expandir el nuevo objetivo, ya contiene una fase "Ejecutar script". Acceder a la información para esta fase de ejecución de secuencias de comandos pestaña "General" deje de Shell en /bin/sh y como secuencia de comandos de escritura:

if [ -f "/Users/myself/Programming/SaveIBFiles.scpt" ]; then 
osascript "/Users/myself/Programming/SaveIBFiles.scpt" 
fi

5) Ahora seleccione su objetivo original, llamar a su información, pestaña "General", y agregue el nuevo objetivo como una dependencia directa.

Ahora, cada vez que crea su aplicación, se llama al script, guarda sus archivos IB abiertos y luego compila su objetivo principal. Tenga en cuenta que si no crea un nuevo objetivo y simplemente agrega una fase de compilación "Ejecutar script" a su objetivo principal, el guardado parece ocurrir demasiado tarde.

Espero que esto ayude!

+0

intentaremos esto si no surgen otras soluciones. Todavía me quedan unos días en la recompensa, así que quiero ver qué otras cosas surgen. Gracias. –

+0

Sí, una solución "nativa" para esto sería realmente agradable. – Pascal

+0

Bueno, nada nativo parecía salir a la superficie después de probar todas las sugerencias, así que le daré los puntos para idear esto. –

1

No estoy seguro, pero ¿tiene instaladas las versiones más recientes de los entornos de desarrollo de Apple? El mío fue preestablecido.

+0

Estoy ejecutando Leopard y he instalado el entorno de desarrollo de iphone 3.1.2 con Xcode. –

3

Alguien más preguntó bastante el same question (enlace de @balanon). La respuesta por irsk:

Curiosamente, parece que es causada por la apertura de su proyecto mediante el comando Archivo> Abrir menú Proyecto reciente en Xcode, o mediante el uso de la lista de documentos recientes en la pantalla de bienvenida de Xcode.

Si hago doble clic en el archivo de proyecto en el Finder para abrir o elegir el proyecto en el menú Elementos recientes en el menú Apple , la conexión de Xcode a Interface Builder está intacto.

aquí está mi respuesta original:

hacer que ambos tienen la misma versión de Xcode? Observo que, desde que me mudé a Snow Leopard y Xcode 3.2, el vínculo entre Xcode e Interface Builder no es tan sólido como en versiones anteriores. Esto parece bastante extendido (he visto bastantes quejas en Twitter al menos) y espero que Apple solucione esto.

+0

Ese puede ser el caso con el leopardo de las nieves, pero yo estaba en una clase de iPhone el año pasado y yo era el único en la clase que tenía xcode y la integración de IB funcionando. Todos estábamos en la misma versión de xcode y la misma versión de Leopard. El instructor no sabía por qué el mío estaba funcionando y el de nadie más. –

+0

Estoy en Snow Leopard con Xcode 3.2.2, y esta solución no funcionó para mí. Intenté usar tanto el menú de Apple como Finder. – Senseful

1

Quizás la configuración no se propague correctamente mediante una instalación o actualización. ¿Has intentado alternar la configuración de "Para archivos no guardados"? (XCode -> Preferences -> Building)

+0

Intenté eso y no pareció marcar la diferencia. gracias de cualquier manera. –

1

Antes de SnowLeopard, IB solía guardar automáticamente mis cambios cuando construía. Ahora tengo que guardar manualmente o de lo contrario no utiliza mis últimos cambios. Además, IB no mantiene ni actualiza su menú Archivo "Abierto reciente" (está vacío). Consulte con su amigo para ver si está en SnowLeopard con Xcode 3.2.

+0

Sí, mi compañero de trabajo está en leopardo de las nieves y xcodd 3.2. –

1

Creo que está relacionado con las Preferencias de xCode.

Ver "xCode" -> "Preferencias" -> "Edificio" -> "Para archivos no guardados" - option>

+0

Sí, este sería el lugar obvio para comenzar. Desafortunadamente, ambos tenemos ese conjunto para solicitar que se guarde antes de la construcción. El problema radica en la integración de Interface Builder en alguna parte. –

2

¿Estás ejecutando 32 bit mientras está ejecutando 64 bit?

Me parece recordar un problema con la comunicación basada en AppleEvent de IB con Xcode en 64 bits.

1

Intente abrir su proyecto xcode desde la ventana del buscador. Después de actualizar a Snow Leopard, el enlace entre xcode e IB se rompió si el proyecto se carga desde la opción Archivos recientes.

Esta respuesta puede estar relacionada Interface Builder and Xcode integration not working

+0

Estoy en Snow Leopard con Xcode 3.2.2, y esta solución no funcionó para mí. – Senseful

Cuestiones relacionadas