Duplicar y renombrar proyecto Xcode y carpetas asociadas [cerrado]

195

Me gustaría poder duplicar un proyecto completo de Xcode, cambiar el nombre del proyecto y los archivos asociados sin que Xcode se vuelva mental, y sin tener que volver a importar manualmente todos los archivos al proyecto.

Sammio2
fuente

Respuestas:

368

Esta respuesta es la culminación de varias otras publicaciones y tutoriales de StackOverflow en Internet que se encuentran en un solo lugar para mi futura referencia y para ayudar a cualquier otra persona que pueda estar enfrentando el mismo problema. Todo el crédito se da por otras respuestas al final.

Duplicar un proyecto Xcode

  • En el Finder, duplique la carpeta del proyecto en la ubicación deseada de su nuevo proyecto. No cambie el nombre del archivo .xcodeproj ni ninguna carpeta asociada en esta etapa.

  • En Xcode, cambie el nombre del proyecto. Seleccione su proyecto desde el panel del navegador (panel izquierdo). En el panel de Utilidades (panel derecho) cambie el nombre de su proyecto, acepte los cambios que propone Xcode.

  • En Xcode, cambie el nombre de los esquemas en "Administrar esquemas", también cambie el nombre de cualquier objetivo que pueda tener.

  • Si no está utilizando el Identificador de paquete predeterminado que contiene el PRODUCT_NAME actual al final (se actualizará automáticamente), cambie su Identificador de paquete al nuevo que usará para su proyecto duplicado.

Cambiar el nombre de la carpeta de origen

Entonces, después de seguir los pasos anteriores, debería tener un proyecto Xcode duplicado y renombrado que debería compilarse y compilarse correctamente, sin embargo, su carpeta de código fuente seguirá siendo nombrada como estaba en el proyecto original. Esto no causa ningún problema de compilación, pero no es la estructura de archivos más clara para que las personas naveguen en SCM, etc. Para cambiar el nombre de esta carpeta sin romper todos los enlaces de archivos, siga estos pasos:

  • En el Finder, cambie el nombre de la carpeta de origen. Esto interrumpirá su proyecto, porque Xcode no detectará automáticamente los cambios. Todos sus listados de archivos xcode perderán sus enlaces con los archivos reales, por lo que se volverán rojos.

  • En Xcode, haga clic en la carpeta virtual a la que renombró (esto probablemente estará justo en la parte superior, justo debajo de su proyecto .xcode real) Cambie el nombre para que coincida con el nombre en el Finder, esto no solucionará nada y estrictamente no es un paso requerido, pero es bueno que los nombres de los archivos coincidan.

  • En Xcode, seleccione la carpeta que acaba de cambiar de nombre en el panel de navegación. Luego, en el panel Utilidades (extremo derecho), haga clic en el icono que parece una carpeta gris oscuro, justo debajo del menú desplegable 'Ubicación'. Desde aquí, navegue a su carpeta renombrada en el buscador y haga clic en 'Elegir'. Esto volverá a asociar automáticamente todos sus archivos y ya no deberían aparecer en rojo en el panel de navegación de Xcode.

Ícono para hacer clic

  • En la configuración de compilación de su proyecto / destino, busque el nombre de la carpeta anterior y cambie manualmente el nombre de cualquier aparición que encuentre. Normalmente hay uno para prefix.pch y otro para info.plist, pero puede haber más.

  • Si está utilizando bibliotecas de terceros (Testflight / Hockeyapp / etc.) también necesitará buscar 'Rutas de búsqueda de biblioteca' y cambiar el nombre de cualquier aparición del nombre de archivo anterior aquí también.

  • Repita este proceso para cualquier carpeta de código fuente de prueba unitaria que pueda contener su proyecto, el proceso es idéntico.

Esto debería permitirle duplicar y renombrar un proyecto xcode y todos los archivos asociados sin tener que editar manualmente ningún archivo xcode, y arriesgarse a arruinar las cosas.

Créditos

Muchas gracias a Nick Lockwood y Pauly Glott por proporcionar respuestas separadas a este problema.

Sammio2
fuente
3
Después de seguir lo anterior, solo busqué en el proyecto del agujero "nombre antiguo" y encontré lo que necesitaba ser cambiado (encabezado de prefijo) y compilé bien con "nombre nuevo" y en otro lugar. Gran tutorial, justo lo que necesitaba. (Probado con Xcode 5.0.1 / iOS 7.0)
Mac
Esto no pareció llevarme hasta allí (en Xcode 5.0.2 aquí, con un proyecto que se migró de 4.6.3 a 5.0.0). Había muchas cosas dentro del *.xcodeproj/project.pbxprojarchivo que contenían la ruta de la carpeta original. En particular, la compilación fallaba porque seguía buscando una lista de información en la carpeta original.
Steven Lu
2
Como curiosidad, aquí hay una forma de hacer esto de la vieja escuela ... stackoverflow.com/questions/10006482/… (Respuesta de Daniel)
Fattie
1
Xcode 7.1.1 se bloquea para mí en el primer obstáculo: cambiar el nombre del proyecto. Investigará, pero ¿alguien más ha encontrado esto?
HughHughTeotl
55
Falta cómo manejarlo cuando tienes integración de Cocoapods en el proyecto. También encontré un enlace útil para manejar eso: h4ckish.com/2015/01/22/renaming-your-cocoapods-ios-project
KK
30

Estoy publicando esto ya que siempre he tenido problemas al cambiar el nombre de un proyecto XCode.

Cambiar el nombre del proyecto es bueno y simple, pero esto no cambia el nombre de la carpeta de origen. Aquí hay un paso a paso de lo que he hecho que funcionó muy bien en Xcode 4 y 5 gracias a los enlaces a continuación.

Enlaces REF:
Rename Project.
Cambiar el nombre de la carpeta de origen y otros archivos.

1- Copia de seguridad de su proyecto.

Si está utilizando git, confirme los cambios, haga una copia de toda la carpeta del proyecto y haga una copia de seguridad en la máquina del tiempo antes de realizar cualquier cambio (este paso no es obligatorio pero lo recomiendo encarecidamente).

2- Abre tu proyecto.

3- Haz doble clic lento o presiona enter en el nombre del Proyecto (ícono superior azul) y cámbiale el nombre a lo que quieras.

NOTA: Después de cambiar el nombre del proyecto y presionar 'enter', sugerirá cambiar automáticamente todas las entradas relacionadas con el nombre del proyecto y le permitirá desmarcar algunas de ellas si lo desea. Seleccione todos ellos y haga clic en Aceptar.

4- Renombrar el esquema

a) Haga clic en el menú justo al lado del botón detener y seleccione Administrar esquemas.

b) Haga un clic lento o presione Intro en el esquema de nombre anterior y cámbiele el nombre a lo que desee.

c) Haga clic en Aceptar.

5 - Construye y ejecuta para asegurarte de que funciona.

NOTAS: En este punto, todos los archivos importantes del proyecto deben renombrarse, excepto los comentarios en las clases creadas cuando se creó el proyecto ni la carpeta de origen. A continuación, cambiaremos el nombre de la carpeta en el sistema de archivos.

6- Cerrar el proyecto.

7- Renombra la carpeta principal y la fuente.

8- Haga clic derecho en el .xcodeprojarchivo del paquete del proyecto y seleccione "Mostrar contenido del paquete" en el menú contextual. Abra el archivo .pbxproj con cualquier editor de texto.

9- Busque y reemplace cualquier aparición del nombre de la carpeta original con el nuevo nombre de la carpeta.

10- Guarde el archivo.

11- Abra el proyecto XCode, pruébelo.

12- Hecho.

EDITAR 10/11/19:

Hay una herramienta para cambiar el nombre de los proyectos en Xcode. No lo he probado lo suficiente como para comentarlo. https://github.com/appculture/xcode-project-renamer

fs_tigre
fuente
2
La pregunta era para duplicar y luego renombrar el proyecto copiado. Esta respuesta es solo para renombrar un proyecto existente.
martinjbaker
1
Este, para mí, es el enfoque más simple. Simplemente copie la carpeta del proyecto original, por ejemplo, MyProject, recursivamente a "MyNewProject". Luego abra MyNewProject y continúe con las instrucciones de fs_tigre. Me sorprende que ni Android Studio ni Xcode proporcionen una opción de "Archivo-> Proyecto de clonación" que sería tan conveniente. ¿Quizás un buen proyecto de complemento para alguien ( nshipster.com/xcode-plugins )?
Blisterpeanuts
El único método que funcionó para mí - XCode 8.2
GreenAsJade
2
Paso 10.1: si tiene un encabezado de puente y / o archivos de derechos, cámbieles el nombre para reflejar su nuevo nombre. Si usa Cocoapods, edite el nombre en su archivo pod.
David Lari
6

A partir de XCode 7, esto se ha vuelto mucho más fácil.

Apple ha documentado el proceso en su sitio: https://developer.apple.com/library/ios/recipes/xcode_help-project_editor/RenamingaProject/RenamingaProject.html

Actualización: enlace XCode 8: http://help.apple.com/xcode/mac/8.0/#/dev3db3afe4f

PBICS
fuente
2
Esto solo funciona para cambiar el nombre de los componentes internos de la aplicación, pero externamente las carpetas de la aplicación permanecen sin cambios
smac89
2

Estoy usando este script después de cambiar el nombre de mi Proyecto iOS. Ayuda a cambiar el nombre de los directorios y sincronizar los nombres.

http://github.com/ytbryan/rename

NOTA: deberá cambiar manualmente el nombre del esquema.

ytbryan
fuente
1

En el código de ejemplo para el libro "Instant OpenCV for iOS" he encontrado un script bash que copia un proyecto de una carpeta a otra.
Investigando un poco, encontré una publicación de blog de lo que parece ser el autor original del script: http://mohrt.blogspot.it/2009/01/renaming-xcode-project-from-command.html , donde Puedes descargar el script . Lo intenté y lo ejecuté desde un terminal como este

    sh renameXcodeProject.sh <name-of-existing-folder> <name-of-folder-to-create>   

funciona bien.
Se puede encontrar información adicional al abrir el archivo con un editor de texto. Espero que ayude

Giorgio Tempesta
fuente
0

Estoy usando Xcode 6+ y solo hago:

  • Copie todos los archivos en las carpetas del proyecto a nuevas carpetas (con nuevo nombre).
  • Abierto *.xcodeproj or *.xcworkspace
  • Cambiar nombre del proyecto.
  • Haga clic en el esquema y elimine el chema actual y agregue uno nuevo.

Aquí está hecho, pero el nombre de la ventana Xcode y *.xcodeproj or *.xcworkspaceaún <old-name>. Entonces lo hago:

  • pop install
  • Abierto <new name>.xcworkspace
SLyHuy
fuente
0

¡Una cosa más para probar!

Cuando copié todos mis archivos, abrí el proyecto y le cambié el nombre, ¡todo cambió a mi nuevo nombre de proyecto, excepto el objetivo de prueba! Recibí un error de enlace que decía que me faltaba un archivo llamado "myOldProjectname.app". Esto es lo que lo solucionó:

  1. Haga clic en la configuración de su proyecto y seleccione su objetivo de prueba ingrese la descripción de la imagen aquí

  2. Haga clic en la configuración de compilación y busque "host de prueba" ingrese la descripción de la imagen aquí

  3. Verifique esas 2 rutas de archivo. Lo más probable es que esas 2 rutas sigan apuntando a su antiguo nombre de proyecto. ingrese la descripción de la imagen aquí

¡Espero que ayude!

erparker
fuente
0

Para cualquier otra persona que tenga problemas con los bloqueos del guión gráfico después de copiar su proyecto, diríjase a Main.storyboard en Identity Inspector.

Luego, verifique que su módulo actual sea el módulo renombrado correcto y no el antiguo.

Buscador de espectros
fuente
0

Estoy usando un script BASH simple para cambiar el nombre.

Uso: ./rename.sh oldName newName

#!/bin/sh

OLDNAME=$1
NEWNAME=$2

export LC_CTYPE=C 
export LANG=C
find . -type f ! -path ".*/.*" -exec sed -i '' -e "s/${OLDNAME}/${NEWNAME}/g" {} +

mv "${OLDNAME}.xcodeproj" "${NEWNAME}.xcodeproj"
mv "${OLDNAME}" "${NEWNAME}"

Notas:

  1. Este script ignorará todos los archivos como .git y.DS_Store
  2. No funcionará si el nombre antiguo / nuevo contiene espacios
  3. Puede no funcionar si usa vainas (no probadas)
  4. El nombre del esquema no se cambiará (de todos modos el proyecto se ejecuta y compila normalmente)
Anton Malmygin
fuente