Mover archivos a una carpeta Real en Xcode


Cuando comencé mi proyecto estaba feliz de usar Grupos en Xcode en lugar de carpetas literales: Ya que estoy usando el navegador en Xcode para acceder a todo, las cosas estaban bien organizadas y estaba 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 horror para aquellos que intentan escanearlo a través de un terminal, alrededor de 300 archivos, más de la mitad de los cuales son gráficos.

Ahora estoy tratando de reorganizar las cosas, creando carpetas reales y importarlos en Xcode. Desafortunadamente Xcode no me deja trabajar con ellos de la manera que lo hace con los grupos. Por ejemplo, si hago clic con el botón derecho en una carpeta agregada real (azul, no amarilla) y elijo agregar archivos existentes, en realidad no los pone 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 deje 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.

Author: Community, 2010-12-11

11 answers

Un moderno (y muerto simple!) enfoque para 2017 (Xcode 6, 7, 8, y a veces 9, ya que lo hace automáticamente algunas veces):

Si está moviendo un montón de archivos a una nueva carpeta y está manteniendo la jerarquía secundaria, en realidad es mucho más fácil que mover cada archivo individualmente:

  1. Crea nuevos grupos en el árbol de carpetas de Xcode y organiza tus archivos en ellos como quieras.
  2. Crear un árbol de carpetas físicas coincidentes en Finder y organizar su archivos en ellos para que coincida con lo que hizo en el paso 1.
  3. Todas las referencias en Xcode ahora deben ser rojas (¡está bien!).
  4. Desde el administrador de identidad y tipos, seleccione el Grupo en Xcode que desea reubicar, luego haga clic en el icono de carpeta del panel de información:

  5. En el cuadro de diálogo Selección del Finder, busque la carpeta nueva equivalente que creó para este grupo en el paso 2. Todos los archivos dentro de ese grupo ahora serán automáticamente redescubierto!

¿No es bonito? A lo sumo, tendrá que repetir estos 5 pasos una vez por cada nuevo grupo que haya creado (¡lo que supera la reubicación de cada archivo individualmente!)

Puntos de bonificación!

Digamos que accidentalmente arruinó el movimiento y ahora un montón de sus archivos están rojos 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, encuentre la carpeta correcta que contiene estos archivos y resolverán automáticamente las rutas que faltan.

 168
Author: brandonscript,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-19 14:07:40

EDITADO EN JUNIO DE 2017: Xcode 9 hace esto automáticamente, sin esfuerzo especial requerido. Esta respuesta y de Brandon solo se aplican a Xcode 8 y anteriores.

EDITADO EN DICIEMBRE DE 2016: La respuesta de Brandon a continuación es una mejor solución ahora. Cuando se creó esta respuesta en 2010, esta era la única opción que pude encontrar. Ahora sugiero La respuesta de Brandon, a continuación.


Resulta que mover archivos a carpetas reales es ciertamente posible, aunque no tan simple como debería ser.

Tengo la información básica de una pregunta aquí, Xcode organización de archivos y carpetas (core data model objects-iPhone), pero aprendí cosas importantes en el camino.

El Proceso

Mover los archivos es un proceso de dos pasos con múltiples sub-pasos:

  1. Dile a Xcode dónde quieres que estén los archivos :

    • Haga clic con el botón derecho/Control en el archivo o grupo de archivos que desea mover y elija Obtener información en el menú contextual que aparece. Aparece la ventana Group Info o File Info.

    • Haga clic en el botón Chooseen el extremo derecho de la ventana en el área Path. Aparece un cuadro de diálogo.

    • Vaya a la carpeta a la que desea mover los archivos. Cree 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 Group Info/File Info ventana.

    • Los nombres de los archivos del grupo se volverán rojos para indicar que Xcode no puede encontrarlos en el lugar especificado.

  2. Mover los archivos reales

    • En el Finder (o Git) mueva los archivos que seleccionó en el paso 1 a las carpetas reales en las que los desea.

    • Vuelva a Xcode. Los archivos/grupos deberían haberse vuelto negros de nuevo. Si alguno es todavía rojo, entonces te has perdido mover algo a la carpeta correcta.

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 al nuevo destino, el botón Elegir está deshabilitado, al igual que el botón Nueva carpeta. La solución, aunque no se por qué hace una diferencia, es usar primero Xcode para poner esos archivos en un Group (haga clic con el botón derecho / control en los archivos y elija Group, y asigne un nombre al grupo) y luego mueva el grupo a la nueva ubicación. Después de haber movido los archivos en el Finder, puede eliminarlos del grupo (arrastrándolos a la nueva carpeta/grupo principal y eliminando el grupo).

  • Deténgase y compile cada pocos minutos, después de completar el paso 2 para varios archivos. La compilación te dirá si has arruinado algo hasta ahora, lo que hace que sea más fácil volver y arréglalo antes de que hayas hecho demasiado daño.

  • Si los archivos no se mueven a donde usted quiere que - Tuve un diablo de un tiempo moviendo algunos archivos que habían sido creados al principio en la carpeta Clases-usted puede simplemente arrastrarlos fuera de su antiguo lugar en el finder a un lugar práctico como el escritorio, eliminar las referencias a ellos en Xcode, y luego volver a importarlos a través de la derecha/control - clic Agregar archivos existentes opción.

  • Si en el pasado has usado Xcode para eliminar referencias a archivos sin moverlos también a la papelera en este proyecto, encontrará archivos que no tienen que ser movidos, pero simplemente 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 estaba siendo denso.

Espero que esto ayude a alguna persona futura. Me sorprende que fuera tan difícil y a veces difícil como lo fue.

 118
Author: Matthew Frederick,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-07 23:40:30

En Xcode 5 o Xcode 6:

  1. Crea las carpetas que se asignan a tus grupos en Finder
  2. Mueva los archivos a esas carpetas en Finder
  3. Seleccione cada archivo que esté rojo en la barra lateral de Xcode a la izquierda
  4. Haga clic en el botón "Mostrar / Ocultar utilidades" para revelar la barra lateral derecha (ver figura)
  5. En "Identidad y tipo", haga clic en el pequeño botón y seleccione la ubicación del archivo (ver figura)

introduzca la descripción de la imagen aquí

Salud.
 104
Author: reinaldoluckman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-23 11:49:19

He encontrado la forma más confiable de trabajar alrededor del espantoso diseño de XCode aquí es organizar TODOS sus archivos en Finder, por dos razones:

  1. Finder no comete "errores", a diferencia de la interfaz gráfica de XCode
  2. 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ías, sin esfuerzo

Incluso al mover archivos XCode existentes, es más rápido hacer esto:

  1. Seleccione los archivos en Finder
  2. Crear una carpeta en Finder para ellos
  3. Arrastrarlos / soltarlos a la carpeta (automáticamente los mueve)
  4. Arrastre / suelte la carpeta Finder en Xcode (automáticamente: crea la carpeta Xcode, agrega todos los archivos en la carpeta Finder)
  5. cmd-seleccione cada archivo "rojo" que ahora ve en Xcode (porque los movió) y presione la tecla eliminar

NB: Nunca uso la opción" crear carpetas arrastradas con subgrupos", porque en XCode 3 eso a menudo era irremediablemente defectuoso y podría corromper proyectos. Apple claramente (en mi humilde opinión) NO usa esta característica internamente, de lo contrario nunca se le habría permitido ser tan defectuoso; si Apple no usa una cosa, generalmente no es seguro usarla tampoco-no son buenos en las pruebas:)

 22
Author: Adam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-07 22:53:11

Hay una herramienta de línea de comandos fácil de configurar y usar - "synx" disponible en github que hacen exactamente lo que se necesita aquí.

Reorganiza la carpeta del proyecto Xcode en finder para que coincida con los grupos Xcode en el proyecto.

Lo puedes encontrar aquí: https://github.com/venmo/synx

ACTUALIZAR: XCode 9 soporta esta característica por defecto. Por lo tanto, no hay necesidad de utilizar otras herramientas más!

 20
Author: Nitesh Borad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-16 09:20:33

Xcode 9

Parece que Xcode 9 ahora lo soporta por defecto. Al mover archivos de un grupo a otro, el archivo también se moverá de la carpeta antigua a la nueva carpeta. Esto fue anunciado en WWDC 2017.

 5
Author: Guy Daher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-23 12:35:24

Utilicé la siguiente herramienta para lograrlo. Organizar carpetas en grupos Xcode

--no-default-exclusions
 3
Author: Mike.R,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-09 12:24:58

Normalmente muevo archivos al directorio directamente en el Finder, luego arreglo los archivos con nombres de color rojo en XCode en su diálogo "Obtener información": haga clic en "Elegir"..."botón y seleccione la nueva locatoin del archivo. Esa es la primera respuesta cuando quiero mover archivos en XCode, y funciona.

 2
Author: Xie Yanbo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-28 15:20:50

A partir de Xcode 4.5 cuando arrastra una estructura de carpetas, se convierte automáticamente en grupos anidados en el Navegador de proyectos. Luego, si mira en el disco (por ejemplo, haga clic con el botón derecho y elija Mostrar en Finder), la estructura de carpetas se ha conservado.

Me pareció que tratar de arreglar las cosas de un proyecto anterior era solo un dolor. Resultó mucho más fácil simplemente eliminar estos archivos y arrastrarlos de nuevo.

 1
Author: Snowcrash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-11-27 08:35:29

Para mover una carpeta en xcode 4.5 simplemente...

  1. Elimine los archivos/grupos de xcode y seleccione "Eliminar referencia".
  2. Vaya al finder y mueva la carpeta/archivos según sea necesario.
  3. Una vez hecho esto, vuelvo a Xcode y selecciono File->Add Files to {ProjectName}.
  4. Asegúrese de que" Copiar elementos en la carpeta del grupo de destino (Si es necesario) " esté marcado
  5. Asegúrese de que" Crear grupo para cualquier carpeta agregada " esté marcada
  6. Asegúrese de que" Añadir a destino " está marcada para su proyecto
 1
Author: Shannon Cole,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-13 11:32:51

La técnica más fácil para XCode 8....

Suponiendo que tiene archivos A,B,C en un grupo lógico, pero quiere moverlos a una carpeta en su disco duro.

  1. Crear una carpeta de destino a través de Finder
  2. Agregue la carpeta en XCode (Archivo -> Agregar archivos ) usando el panel de opciones para seleccionar una referencia de carpeta (no un grupo)
  3. Arrastre los archivos A,B,C del grupo (antiguo) a la referencia de carpeta (nueva) en el navegador de proyectos. XCode moverá los archivos a la carpeta, tanto en el el proyecto, y en disco.

Hecho.

 0
Author: software evolved,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-27 17:49:44