Xcode cambia el storyboard sin modificar y los archivos XIB.

Los guiones gráficos son más bien un dolor real desde la perspectiva del flujo de trabajo de git cuando varias personas colaboran en ellos. Por ejemplo, el XML en el archivo .storyboard tiene su inicio<document> etiquetatoolsVersion ysystemVersion atributos alterados por cualquier configuración que esté ejecutando el manipulador de archivos más reciente. Sincronizar las versiones de Xcode de todos parece ser de gran ayuda.toolsVersion, perosystemVersion los cambios sin importar qué, dependiendo de la versión específica de Mac y / o OS X que el desarrollador esté ejecutando.

Esto es idiota, pero sobre todo inofensivo. Sin embargo, lo que nos preocupa es que, en otras ocasiones, se realizan automáticamente otros cambios en el guión gráfico simplemente abriéndolos después de ungit pull. Es decir, Alice realiza cambios en un guión gráfico, los confirma y los empuja al repositorio. Bob luego tira de los cambios de Alice y abre el guión gráfico para hacer más cambios. En el momento en que abre el guión gráfico, el icono del archivo cambia inmediatamente a un estado modificado pero no guardado, ygit status muestra que ha ocurrido cualquier cantidad de cambios extraños. Todo esto sin que Bob haya cambiado nada o haya guardado el archivo él mismo.

El cambio automatizado más común que estamos viendo es la desaparición o reaparición de todo el<classes> etiqueta hierachy cerca del final de un archivo de guión gráfico. No hemos descubierto qué está causando esto. Es posible que tengamos varias versiones localizadas de un guión gráfico en varios directorios .lproj, y al abrirlas en el Interface Builder, la jerarquía de clases puede ser eliminada de algunas de forma espontánea y agregada a otras, o dejada sola en algunas. Esto causa mucho ruido engit diff, pero en realidad no rompe ninguna funcionalidad. A menudo agregaremos selectivamente los cambios reales que hicimos en el índice de git, los confirmaremos y luego descartaremos lo espontáneo, sin sentido.<classes> cambios Esto es para mantener los compromisos pequeños y agradables, como deberían ser. Sin embargo, al final, se vuelve demasiado molesto ya que Xcode sigue re-haciendo los cambios, y alguien simplemente los confirma junto con otras cosas ... lo cual está bien hasta que el Xcode de otra persona decida querer volver a cambiarlos por nada. razón aparente. (Nuestro historial de compromisos tiene mucho que jurar sobre esto).

¿Alguien más está viendo este comportamiento? ¿Se trata de un error de Xcode o un problema de configuración en uno o más de nuestros desarrolladores Mac? Hemos visto un comportamiento similar al colaborar con archivos XIB, pero los guiones gráficos parecen más susceptibles a esto.

Respuestas a la pregunta(5)

Su respuesta a la pregunta