Mover archivos a una carpeta real en Xcode
macos ios (11)
Xcode 9
Parece que Xcode 9 ahora lo admite de manera predeterminada. Cuando mueva archivos de un grupo a otro, el archivo también se moverá de la carpeta anterior a la nueva. Esto fue anunciado en WWDC 2017.
Cuando comencé mi proyecto, estaba contento de usar Grupos en Xcode en lugar de carpetas literales: dado que estoy usando el navegador en Xcode para acceder a todo, todo estaba bien organizado y me sentí feliz.
Sin embargo, ahora que el proyecto está a punto de ser compartido para el control de versiones, la carpeta del proyecto en sí es un espectáculo de terror para aquellos que intentan escanearlo a través de un terminal, cerca de 300 archivos, más de la mitad de los cuales son gráficos.
Estoy tratando de reorganizar las cosas, crear carpetas reales e importarlas a Xcode. Lamentablemente, Xcode no me permite trabajar con ellos de la misma forma que lo hace con los grupos. Por ejemplo, si hago clic derecho en una carpeta real añadida (azul, no amarilla) y elijo agregar archivos existentes, en realidad no los coloca en esa carpeta, los pone en su raíz.
Del mismo modo, no puedo mover un archivo de una carpeta falsa (un grupo) a una carpeta real: Xcode no considera que las carpetas reales sean lugares válidos para mover cosas.
¿Qué me estoy perdiendo? ¿Cómo puedo convencer a Xcode para que me permita usar las carpetas de la forma en que uso los grupos? Aquí hay una respuesta a una pregunta algo similar , pero en realidad no resuelve mi problema ya que estoy trabajando con archivos existentes.
Un enfoque moderno (¡y muerto simple!) Para 2017 (Xcode 6, 7, 8 y, a veces, 9, ya que lo hace automágicamente algunas veces):
Si está moviendo un grupo de archivos en una nueva carpeta y mantiene la jerarquía secundaria, en realidad es mucho más fácil que mover cada archivo individualmente:
- Cree nuevos grupos en el árbol de carpetas de Xcode y organice sus archivos como desee.
- Cree un árbol de carpetas físicas correspondiente en Finder y organice sus archivos físicos en ellos para que coincidan con lo que hizo en el paso 1.
- Todas las referencias en Xcode ahora deberían ser rojas (¡eso está bien!).
Desde el administrador de Identidad y Tipo, seleccione el Grupo en Xcode que desea reubicar, luego haga clic en el icono de la carpeta desde el panel de información:
En el cuadro de diálogo de selección del Finder, ubique la nueva carpeta equivalente que creó para este grupo en el paso 2. ¡ Todos los archivos dentro de ese grupo serán redescubiertos automágicamente!
¿No es lindo? A lo sumo, deberá repetir estos 5 pasos una vez por cada nuevo grupo que haya creado (¡lo cual supera a la reubicación individual de cada archivo!)
¡Puntos extra!
Supongamos que accidentalmente arruinó el movimiento y ahora algunos de sus archivos están en rojo y no se pueden encontrar: seleccione varios archivos que están rotos y usando el mismo icono de carpeta en la captura de pantalla del paso 4, busque la carpeta correcta que contiene estos archivos y resolverán automáticamente las rutas que faltan.
A partir de Xcode 4.5 cuando arrastra en una estructura de carpetas, se convierte automáticamente en grupos anidados en Project Navigator. Luego, si mira en el disco (por ejemplo, haga clic con el botón derecho y elija Mostrar en el buscador), la estructura de la carpeta se ha conservado.
Descubrí que tratar de arreglar cosas de un proyecto anterior era solo un dolor. Resultó mucho más fácil simplemente eliminar estos archivos y arrastrarlos de nuevo.
Hay una herramienta de línea de comandos fácil de configurar y usar : "synx" disponible en github que hace exactamente lo que se necesita aquí.
Reorganiza la carpeta del proyecto de Xcode en el buscador para que coincida con los grupos de Xcode en el proyecto.
Puede encontrarlo aquí: https://github.com/venmo/synx
ACTUALIZACIÓN: XCode 9 admite esta función de forma predeterminada. ¡Entonces ya no es necesario usar otras herramientas!
He encontrado que la forma más confiable de solucionar el espantoso diseño de XCode aquí es organizar TODOS tus archivos en Finder, por dos razones:
- Finder no comete "errores", a diferencia de la GUI de XCode
- Una vez que las cosas están organizadas en Finder, puede arrastrar / soltar carpetas completas de Finder en XCode, y ... hace exactamente lo que quería, sin esfuerzo
Incluso cuando mueve archivos existentes de XCode, es más rápido hacer esto:
- Seleccione los archivos en Finder
- Crea una carpeta en Finder para ellos
- Arrástrelos / colóquelos en la carpeta (los mueve automáticamente)
- Arrastra / suelta la carpeta Finder en Xcode (automáticamente: crea la carpeta Xcode, agrega todos los archivos en la carpeta Finder)
- cmd: selecciona cada archivo "rojo" que veas en Xcode (porque los moviste) y presiona la tecla Eliminar
NB: Nunca utilizo la opción "crear carpetas arrastradas con subgrupos", porque en el XCode 3 a menudo no funcionaba bien y podía dañar los proyectos. Apple claramente (en mi humilde opinión) NO utiliza esta función internamente, de lo contrario, nunca se le habría permitido tener errores. si Apple no usa nada, tampoco es seguro usarlo, no son buenos para probar :)
La técnica más fácil para XCode 8 ....
Suponiendo que tiene los archivos A, B, C en un grupo lógico, pero quiere que se muevan a una carpeta en su disco duro.
- Crea una carpeta de destino a través de Finder
- Agregue la carpeta en XCode (Archivo -> Agregar archivos) usando el panel de Opciones para seleccionar una Referencia de carpeta (no un grupo)
- Arrastre los archivos A, B, C del grupo (antiguo) a la referencia (nueva) de la carpeta en el navegador del proyecto. XCode moverá los archivos a la carpeta, tanto en el proyecto como en el disco.
Hecho.
Para mover una carpeta en xcode 4.5 solo ...
- Borre los archivos / grupos de xcode y seleccione "Eliminar referencia".
- Vaya al buscador y mueva la carpeta / archivos según sea necesario.
- Una vez hecho esto, vuelvo a Xcode y selecciono Archivo-> Agregar archivos a {ProjectName}.
- Asegúrese de que esté marcada la opción "Copiar elementos en la carpeta del grupo de destino (si es necesario)"
- Asegúrate de que "Crear grupo para cualquier carpeta agregada" esté marcado
- Asegúrate de que "Add to Target" esté marcado para tu proyecto
Por lo general, muevo archivos al directorio directamente en el Finder, luego arreglo los archivos con nombres de color rojo en XCode en su cuadro de diálogo "Obtener información": haga clic en el botón "Elegir ..." y seleccione la nueva ubicación del archivo. Esa es la primera respuesta cuando quiero mover archivos en XCode, y funciona.
Usé la siguiente herramienta para lograrlo. https://github.com/venmo/synx
--no-default-exclusions
ADEMÁS EDITADO EN JUNIO DE 2017: Xcode 9 hace esto automáticamente, sin esfuerzo especial requerido. Esta respuesta y Brandon''s solo se aplican a Xcode 8 y anteriores.
EDITADO DICIEMBRE 2016: La respuesta de Brandon a continuación es una mejor solución ahora. Cuando esta respuesta se creó en 2010, esta era la única opción que podía encontrar. Ahora sugiero Brandon''s , a continuación.
Resulta que mover archivos a carpetas reales es ciertamente posible, aunque no tan simple como debería ser.
Obtuve la información básica de una pregunta aquí, Xcode organizó archivos y carpetas (objetos del modelo de datos básicos - iPhone) , pero aprendí cosas importantes en el camino.
El proceso
Mover los archivos es un proceso de dos pasos con múltiples subpasos:
Dile a Xcode dónde quieres que estén los archivos :
- Derecha / Control-clic en el archivo o grupo de archivos que le gustaría mover y elija Obtener información en el menú contextual que aparece. Aparece la ventana Info de grupo o Información de archivo .
- Haga clic en el botón Elegir en el extremo derecho de la ventana en el área Ruta . Un cuadro de diálogo aparece.
- Navega a la carpeta en la que deseas mover los archivos. Crea una nueva carpeta si es necesario. Haga clic en el botón Elegir en la esquina inferior derecha del cuadro de diálogo, luego cierre la ventana Info de grupo / Información de archivo .
- Los nombres del archivo / archivos en el grupo se volverán rojos para indicar que Xcode no puede encontrarlos en el lugar que usted especificó.
- Derecha / Control-clic en el archivo o grupo de archivos que le gustaría mover y elija Obtener información en el menú contextual que aparece. Aparece la ventana Info de grupo o Información de archivo .
Mueva los archivos reales
- En el Finder (o Git) mueva los archivos que seleccionó en el paso 1 a las carpetas reales en las que desea que estén.
- Vuelve a Xcode. Los archivos / grupos deberían haberse vuelto negros de nuevo. Si alguno todavía está en rojo, no habrá movido algo a la carpeta correcta.
- En el Finder (o Git) mueva los archivos que seleccionó en el paso 1 a las carpetas reales en las que desea que estén.
Consejos
Aprendí un par de cosas importantes mientras ajustaba los ~ 300 archivos en este proyecto:
- Algunos archivos se niegan a moverse de esta manera; es decir, cuando navega hacia el nuevo destino, el botón Elegir está deshabilitado, al igual que el botón Nueva carpeta . La solución, aunque no sé por qué marca la diferencia, es usar primero Xcode para poner esos archivos en un grupo (derecha / control-clic en los archivos y elegir Grupo , y darle un nombre al grupo) y luego mover el archivo. grupo a la nueva ubicación. Una vez que haya movido realmente los archivos en el Finder, puede eliminarlos del grupo (arrastrándolos al nuevo grupo / carpeta principal y eliminando el grupo).
- Detener y compilar cada pocos minutos, después de completar el paso 2 para una cantidad de archivos. La compilación te dirá si has jodido algo hasta ahora, por lo que es más fácil volver y arreglarlo antes de que hayas hecho demasiado daño.
- Si los archivos no se moverán a donde usted quiere, tuve un diablo de vez en cuando para mover algunos archivos que habían sido creados al principio de la carpeta Clases, simplemente puede arrastrarlos fuera de su ubicación anterior en el buscador para en algún lugar práctico como el escritorio, elimine las referencias a ellos en Xcode y luego vuelva a importarlos a través de la opción derecha / control-clic en Agregar archivos existentes .
- Si en el pasado usaste Xcode para eliminar referencias a archivos sin moverlos a la papelera en este proyecto, encontrarás archivos que no tienen que ser movidos, sino que están sentados allí. Tenga cuidado de no hacer lo que hice, confundiendo los nombres de un grupo actual de archivos que estaba moviendo y los archivos más antiguos que ya no están vinculados, insistiendo en que Xcode los importe porque pensó que era denso.
Espero que esto ayude a una persona futura. Me sorprende que fuera tan difícil y ocasionalmente complicado como lo fue.
En Xcode 5 o Xcode 6:
- Crea las carpetas que se asignan a tus grupos en Finder
- Mueva los archivos a esas carpetas en Finder
- Seleccione cada archivo que sea rojo en la barra lateral de Xcode a la izquierda
- Haga clic en el botón "Mostrar / Ocultar utilidades" para mostrar la barra lateral derecha (ver figura)
- En "Identidad y tipo", haga clic en el botón minúsculo y seleccione la ubicación del archivo (ver figura)
Aclamaciones.