Cambiar el nombre del proyecto xcode 4 y la carpeta real

119

Sé cómo cambiar el nombre del proyecto en Xcode 4, pero ¿cómo se cambia el nombre de la carpeta de origen? El caso es que cambiar el nombre del proyecto en Xcode, solo cambia el nombre dentro de Xcode (aunque es un progreso en comparación con el anterior), pero no sé por qué Xcode no cambia el nombre de la carpeta en el sistema de archivos.

Chris G.
fuente
¿Ha intentado simplemente cambiar el nombre de la carpeta?
David Brown
2
Tengo a mi amigo, y todos los archivos en el archivo del proyecto faltan entonces, todos están marcados con leído, por no tener ninguna referencia. Pero encontré el alma - mira mi respuesta. Gracias por responder
Chris G.

Respuestas:

259

¡Puede hacer esto desde Xcode sin tener que editar manualmente el archivo pbxproj en un editor de texto!

Así es cómo:

  1. Cambie el nombre de su carpeta de origen en el Finder. Esto romperá el proyecto inicialmente porque Xcode no detecta automáticamente cuándo se cambian las carpetas reales a las que apuntan las carpetas del proyecto virtual (amarillo), por lo que todos los archivos dentro de esa carpeta se volverán rojos en Xcode. No se preocupe por eso, lo arreglaremos en el paso 3.

  2. En Xcode, haga clic en la carpeta virtual (ahora rota) en la barra lateral izquierda y cámbiele el nombre para que coincida con el nombre en el Finder (en realidad puede llamarlo como quiera, o no cambiarle el nombre en absoluto, pero eso sería una locura ). Eso no arreglará los archivos rojos dentro de la carpeta, pero está bien.

  3. En la barra lateral derecha de Xcode, haga clic en el icono que se muestra en la captura de pantalla a continuación para abrir un cuadro de diálogo de archivo. Seleccione la carpeta cuyo nombre cambió anteriormente. Esto volverá a asociar la carpeta virtual con la carpeta real en el disco y automáticamente arreglará los enlaces a todos los archivos dentro.

  4. En la configuración de su compilación, busque el nombre de la carpeta anterior y cambie manualmente el nombre de las apariciones que encuentre. Normalmente habrá dos de ellos, oldfolder / prefix.pch y oldfolder / info.plist, pero puede haber otros.

¡Todo listo!

ingrese la descripción de la imagen aquí

EDITAR: esta opción todavía está allí en Xcode 5, pero está útilmente oculta por defecto. Para mostrarlo, haga clic en el encabezado delgado "Identidad y tipo" en el inspector sobre el panel "Configuración de texto" para expandirlo.

Nick Lockwood
fuente
Excelente Solo agregaría que si el cambio de nombre es parte del cambio de nombre de todo el proyecto, entonces hay otro paso: cambie el "Nombre del proyecto" en la parte superior derecha y permita que Xcode cambie el nombre de todo internamente para que coincida.
RedYeti
1
Todo funcionó muy bien, y el proyecto cambia de nombre, pero el mensaje de compilación en la parte superior y el nombre del simulador aún conservan el nombre anterior, para cambiar esto: vaya al menú del producto, administre esquemas y cambie el nombre del esquema
BlackTigerX
Cierto. También puede eliminar el esquema y presionar el botón de creación automática de esquemas.
Nick Lockwood
¿Alguien sabe cómo hacer esto en xCode 5? Ya no veo ese botón mágico. :(
Jason
Todavía está ahí, simplemente está escondido. Tienes que expandir la fila llamada "Identidad y tipo" en el inspector haciendo clic en ella. ¡Me tomó unos 20 minutos darme cuenta de eso!
Nick Lockwood
112

Lo he hecho decenas de veces:

  • Cambie el nombre del proyecto haciendo clic y luego editando el título en su navegador de proyectos Xcode.
  • Cierre Xcode.
  • Cambie el nombre de la carpeta de origen.
  • Desde el Finder, abra el .pbxprojarchivo dentro del paquete del proyecto (menú contextual "Mostrar contenido del paquete") con cualquier editor de texto.
  • Busque y reemplace cualquier aparición del nombre de la carpeta original con el nuevo nombre de la carpeta.
  • Guarda el archivo.
  • Abra el proyecto Xcode.
djromero
fuente
3
Solo recuerde hacer esto después de cambiar el nombre del proyecto
Aram Kocharyan
Sigo tus instrucciones y fallo. Creo que el problema está en "Buscar y reemplazar cualquier aparición del nombre de la carpeta original con el nombre de la nueva carpeta". ¿Podría proporcionar instrucciones más detalladas sobre este paso? Gracias
Philip007
La forma de buscar y reemplazar depende del editor de texto o la herramienta elegida. En mi caso, con vim: <ESC>:% s / old / new / g <ENTER> Puede fallar si hay algo más en el archivo del proyecto con un nombre conflictivo.
djromero
Gracias @madmw, lo descubrí. Estoy usando TextEdit. Creo que el truco consiste en reemplazar el atributo "Contiene" por "Palabra completa" mientras se realiza la búsqueda y el reemplazo. Y publico las instrucciones detalladas a continuación.
Philip007
¡Funciona de maravilla! Al cambiar el nombre de la carpeta de un objetivo, por ejemplo, una biblioteca estática, también tuve que alterar mis esquemas y también cambiar el nombre del encabezado del prefijo y el archivo de información plist.
Tim Potter
12

Tarea: cambie el nombre de "Play" a "Play2" tanto en Xcode como en Finder

Cambia esto:

ingrese la descripción de la imagen aquí

A esto:

ingrese la descripción de la imagen aquí

PASOS:

// Antes que nada, ¡haz una copia de seguridad del proyecto en Finder!

  • Cambiar el nombre del proyecto en el navegador de proyectos Xcode // Haga clic en el nombre del proyecto y luego presione enter
  • Cambiar el nombre del grupo en el navegador de proyectos Xcode // no afecta el nombre de la carpeta en el Finder
  • Cerrar Xcode
  • Cambiar el nombre de la carpeta externa (columna izquierda en la imagen) en Finder

// Todos los pasos anteriores son sencillos y sin efectos secundarios // // Ahora viene la parte complicada: cambie el nombre de la carpeta interna (columna central en la imagen) en Finder (la que está al mismo nivel con .xcodeproj)

  • Cambie el nombre de la carpeta interna en Finder mientras mantiene Xcode cerrado
  • Haga clic derecho en .xcodeproj, seleccione "Mostrar contenido del paquete"
  • Abra el archivo .pbxproj con Mac TextEdit
  • Busque y reemplace todo "Play" con "Play2". Para garantizar que todo salga bien, haga clic en la flecha en el extremo izquierdo de la barra de búsqueda y modifique el atributo de búsqueda. Cambie "Contiene" a "Palabra completa" y desmarque "Ignorar mayúsculas y minúsculas".
  • Guardar archivo .pbxproj
  • Abra el proyecto Xcode y ejecute
Philip007
fuente
4

Aquí se explica cómo cambiar el nombre de un proyecto de manera efectiva en XCode4 (INCLUYENDO LA CARPETA DE ARCHIVOS):

  1. Cierre todos los proyectos abiertos por completo en XCode para evitar problemas
  2. Copie el proyecto en cuestión a una nueva carpeta (IMPORTANTE: MANTENGA UNA COPIA DE SEGURIDAD DE SU ANTIGUO PROYECTO)
  3. Abrir el proyecto
  4. Cambie el nombre del proyecto en XCode4 (haga doble clic en el nombre del proyecto), cambie el nombre y siga los pasos (sí a todo)
  5. Vaya al producto, administre esquemas y cambie el nombre del esquema (haga doble clic en el nombre del esquema)
  6. Cierre su proyecto (asegúrese de que esté completamente cerrado, de lo contrario, los siguientes pasos no funcionarán)
  7. En Finder, vaya a la carpeta Proyecto y haga clic derecho en el archivo .xcodeproj, luego seleccione la opción "Mostrar contenido del paquete"
  8. Luego haga clic derecho en el archivo .pbxproj y ábralo con TextEdit
  9. Reemplace todas las apariciones del nombre de la carpeta donde solían vivir los proyectos (el nombre del proyecto anterior para el nombre del nuevo proyecto)
  10. Guarda el archivo
  11. ¡Abra el proyecto nuevamente y constrúyalo!
Mav55
fuente
¿Podría proporcionar instrucciones más detalladas sobre el paso 9?
Philip007
2

En primer lugar, ¡no cambie el nombre de un proyecto de Xcode!

Si es necesario, lo siguiente podría ser: nunca lo hice funcionar, terminé creando un nuevo proyecto y comencé a copiar los archivos existentes. Xcode es tan ahh ... Tiene tantas cosas no productivas, como intentar también cambiar el nombre de un archivo de "Nombre" a "nombre". Bueno, diviértete.

Encontré la respuesta o cómo solucionar esto: abra el archivo pbxproj haciendo clic derecho en "Mostrar contenido del paquete" y allí edite un archivo project.pbxproj; debe cambiar el nombre de una referencia llamada ruta y algunas otras cosas, solo busque el nombre de la carpeta agregó "/".

Eso es. Espero que ayude a alguien.

Chris G.
fuente
2
Ayer cambié el nombre de un proyecto y funcionó bien. Sin embargo, estoy de acuerdo en que Xcode es "ahh": D
manmal
Hay una forma perfectamente segura y compatible de hacer esto: vea mi respuesta.
Nick Lockwood
2

Aquí hay otro problema que debe tener en cuenta al reemplazar valores en su archivo * .pbxproj. Si el nombre de su carpeta anterior era FooBar, tendrá una entrada en su archivo * .pbxproj que se ve así:

ruta = FooBar

Suponga que su nuevo nombre de carpeta es Foo Bar. Es decir, estás introduciendo un espacio. Entonces, esta línea debería convertirse en

ruta = "Foo Bar"

Si simplemente busca y reemplaza, el resultado será un archivo * .pbxproj que Xcode no puede analizar. Si el nombre de su nueva carpeta tiene un espacio y el nombre anterior no lo tenía, asegúrese de incluir las comillas dobles.

Zampano
fuente
2

Estoy resumiendo por mí mismo, después de examinar varias respuestas anteriores y probarme. Supongamos que el nombre del proyecto actual es ProjAbc y desea cambiarle el nombre a ProjDef:

  1. Salga de Xcode de ese proyecto.

  2. En Finder, duplique la carpeta ARRIBA de ProjAbc.xcodeproj para hacer una copia de seguridad.

  3. En Finder, cambie libremente el nombre de la carpeta ARRIBA de ProjAbc.xcodeproj si cree que la necesita para adaptarse al nuevo nombre del proyecto.

  4. En Finder, cambie el nombre de la carpeta de archivos de origen paralela a ProjAbc.xcodeproj de ProjAbc a ProjDef

  5. Abra Xcode para ProjAbc.xcodeproj (en Project Navigator, todos los archivos en la carpeta de origen virtual ProjAbc estarán en color rojo).

  6. En Xcode, haga clic en la carpeta virtual (ahora rota) en el Navegador de proyectos en la barra lateral izquierda y cámbiele el nombre para que coincida con el nombre en Finder - ProjDef. Eso todavía no arreglará los archivos rojos dentro de la carpeta, pero está bien.

  7. En Xcode, (aún seleccionando la carpeta virtual en la barra lateral izquierda) en la barra lateral derecha, en el inspector de archivos, haga clic en el icono que se muestra en la captura de pantalla a continuación para abrir un cuadro de diálogo de archivo. En el cuadro de diálogo del archivo, seleccione la carpeta a la que le cambió el nombre anteriormente (ProjDef). Esto volverá a asociar la carpeta virtual con la carpeta real en el disco y automáticamente arreglará los enlaces a todos los archivos dentro. La imagen muestra dónde hacer clic en el icono de carpeta en el inspector de archivos

  8. En Xcode, en Project Navigator, haga clic en el nombre del proyecto ProjAbc y cámbiele el nombre a ProjDef.

    • Se le preguntará: "¿Cambiar el nombre de los elementos de contenido del proyecto?". Haga clic en el botón "Cambiar nombre".
    • Se le preguntará: "¿Le gustaría que Xcode tome instantáneas automáticas antes de Project Rename y operaciones similares?". Haga clic en "Desactivar" o "Activar". No importa.
  9. En Xcode, ahora abra "Configuración de compilación" dentro del objetivo de ProjDef (dentro del proyecto ProjDef en Project Navigator). Cambie el nombre de la carpeta y del archivo de los archivos * -Info.plist y * -Prefix.pch para que contengan ProjDef en lugar de ProjAbc.

  10. En Xcode, en Project Navigator, en la carpeta de fuentes virtuales de ProjDef, en "Supporting Files", también cambie el nombre de los archivos * -Info.plist y * -Prefix.pch para que contengan ProjDef en lugar de ProjAbc

  11. En el menú Xcode, presione Producto / Esquema / Administrar esquemas ... (o haga clic en "ProjAbc"> Nombre del esquema en la barra de esquemas en la parte superior izquierda de Xcode, y presione "Administrar esquemas ...") y en el cuadro de diálogo cambie el nombre del esquema de ProjAbc a ProjDef, luego presione el botón "OK". Si el nombre del proyecto está compuesto por una sola palabra, ¡puede ejecutarlo ahora mismo!

  12. En Xcode, edite la línea de comentarios superior en Supporting Files / * - Prefix.pch file, y reemplace ProjAbc por ProjDef (2 veces). Por supuesto, corregir este comentario es opcional.

  13. Salga de Xcode.

  14. En Finder, apunte a ProjDef.xcodeproj y ábralo en el editor de texto. (Ábralo en TextWrangler.app, o haga clic con el botón derecho del mouse y en el menú emergente presione "Mostrar contenido del paquete" y luego edite el archivo project.pbxproj en TextEdit.app)

  15. En el Editor de texto, busque "ProjAbc" (palabra completa, coincidencia de mayúsculas y minúsculas) que debería aparecer una vez (en el párrafo: / * Begin PBXNativeTarget section * / in line: productName = ProjAbc;) y reemplácelo por "ProjDef". De hecho, ¡el proyecto podría ejecutarse de todos modos !, por lo que este paso es opcional.

  16. Si el nombre del proyecto está compuesto por 2 o más palabras separadas, como "ProjDef Geh", DEBE seguir los siguientes pasos: Busque la referencia a la carpeta Finder de la carpeta de archivos fuente virtual -

    • Busque la línea: ruta = ProjDef Geh;
    • Aparecerá una vez, en el párrafo / * ProjDef Geh * /
    • Reemplácelo por la línea: ruta = "ProjDef Geh";
  17. Guarde desde el editor de texto y salga del Editor de texto.

  18. Eso es. Como se escribió anteriormente, si el nombre del proyecto está compuesto por una sola palabra, puede ejecutarlo justo al final del paso 11.

mlev
fuente
Ha hecho esto más complicado de lo que debe ser. Si realiza el paso 8 (cambiar el nombre del proyecto) primero, antes del paso 4 (cambiar el nombre de la carpeta de origen), cambiará el nombre de su archivo Info.plist y Prefix.pch automáticamente, por lo que puede omitir los pasos 9 y 10.
Nick Lockwood
0

Encontré las respuestas anteriores realmente útiles, especialmente la respuesta de Nick Lockwood.

Acabo de renombrar un par de carpetas en Xcode 8 y encontré dos problemas más: A) "faltan errores de copia de trabajo" B) Core Data se bloquea .

Cómo resolver estos dos problemas:

A) " faltan errores en la copia de trabajo "

Encontré la respuesta a continuación muy útil: Actualización de Swift 3 / Xcode 8 - Faltan cientos de archivos DerivedData debido a errores de copia de trabajo

Básicamente, Xcode 8 tiene un control de fuente riguroso, lo que puede provocar los errores anteriores. Tienes que:

  1. Limpiar los datos derivados de Xcode.
  2. Vaya a Control de fuente y haga clic en Actualizar estado.
  3. Vaya a Control de código fuente y haga clic en Confirmar; seleccione todos los archivos en la barra lateral izquierda del menú de confirmación al realizar la confirmación (clic derecho -> Seleccionar todo).
  4. Probablemente obtendrá un error.
  5. Cierre el menú Confirmar.
  6. Actualizar estado.
  7. Cierre su proyecto saliendo de Xcode.
  8. Vuelva a abrir su proyecto, actualice el estado, confirme nuevamente.
  9. Esta vez, el compromiso debería funcionar.
  10. Haga clic en Proyecto -> Limpiar.

Supongo que ya ha habilitado Source Control. Si no lo ha hecho, o si se queda atascado siguiendo mis instrucciones, simplemente siga las instrucciones más detalladas en el enlace proporcionado.

B) Fallos de Core Data

Cambiar el nombre de las carpetas a veces arruinará los datos centrales. Hay varias razones posibles por las que esto es así, y a continuación se muestran algunas correcciones que puedo sugerir:

  1. Nombre de modelo de AppDelegate incorrecto . Este fue el caso en mi situación. Vaya a su AppDelegate y busque let container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME"). Asegúrese de que el nombre sea correcto.

    En el futuro (varios años después de esta publicación, cuando Apple vuelva a cambiar Core Data) o si está utilizando una versión anterior de Core Data, eche un vistazo a AppDelegate. Probablemente haya algo raro ahí que esté interfiriendo con sus datos básicos.

  2. Nombre de modelo incorrecto en xcdatamodeld . Vaya al Finder y abra su .xcdatamodeld en un editor de texto.

Compruebe lo siguiente:

<plist version="1.0">
  <dict>
     <key>_XCCurrentVersionName</key>
     <string>YOUR CORE DATA MODEL NAME.xcdatamodel</string>  <-- Make sure this is correct.
  </dict>
</plist>

Más detalles aquí: Los archivos de modelo de Core Data no se cargan al cambiar el nombre

  1. Si las dos cosas anteriores no funcionan, intente 1) eliminar su entidad y luego agregar otra entidad que sea idéntica o 2) eliminar su xcdatamodeld y luego agregar otro modelo de datos que sea idéntico (y asegúrese de que el nombre del nuevo xcdatamodeld coincida lo que hay en su AppDelegate y el resto de su código). Nunca haga esto con una aplicación en vivo , o si lo hace, asegúrese de migrar correctamente sus datos principales mientras lo hace.
Hadoren
fuente
0

Si tiene una referencia anterior del proyecto de origen en su proyecto, cuando duplique el proyecto (cada cambio realizado afecta a ambos proyectos) aquí la solución

  • Proyecto duplicado del proyecto de origen
  • Cambiar el nombre de la carpeta de origen del proyecto de origen que rompe el problema de referencia.
  • En proyecto duplicado, todo se vuelve rojo, elija su carpeta actual de proyecto. (la captura de pantalla se muestra en la respuesta de marca verde de stackoverflow)

================================================ ======================

Ravi Kumar
fuente