Duplicar y cambiar el nombre del proyecto Xcode y carpetas asociadas


Me gustaría poder duplicar un proyecto Xcode completo, renombrar el proyecto y los archivos asociados sin que Xcode se vuelva loco y sin tener que volver a importar manualmente todos los archivos al proyecto.

Author: Sammio2, 2013-07-19

9 answers

Esta respuesta es la culminación de varios otros posts y tutoriales de StackOverflow en Internet reunidos 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 de la .xcodeproj nombre de archivo o cualquier carpeta asociada en este etapa.

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

  • 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 (por lo que se actualizará automáticamente), cambie su paquete Identificador del nuevo que va a utilizar para su proyecto duplicado.

Cambiar el nombre de la carpeta de origen

Así que después de seguir los pasos anteriores, debería tener un proyecto Xcode duplicado y renombrado que debería compilar y compilar 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 compilador, 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 sus enlaces de archivos, siga estos pasos:

  • En el Finder, cambie el nombre de la carpeta de origen. Esto romperá tu 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 todos se volverán rojos.

  • En Xcode, haga clic en la carpeta virtual que renombró (esto probablemente estará justo en la parte superior, justo debajo de su actual .xcodeproject) Cambie el nombre para que coincida con el Finder, esto no solucionará nada y estrictamente no es un paso necesario, pero es bueno tener los nombres de archivo coincidentes.

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

Icono para hacer clic

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

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

  • Repita este proceso para cualquier carpeta de código fuente de prueba unitaria que su proyecto pueda contener, 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 estropear las cosas.

Créditos

Muchas gracias a Nick Lockwood , y Pauly Glott por proporcionar las respuestas separadas a esto problema.

 338
Author: Sammio2,
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
2016-12-28 18:47:37

Estoy publicando esto ya que siempre he estado luchando al cambiar el nombre de un proyecto en 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 de referencia:
Renombrar Proyecto.
Cambiar el nombre de la carpeta de origen y otros archivos.

1- Copia de seguridad de su proyecto.

Si estás usando git, confirma cualquier cambio, haga una copia de toda la carpeta del proyecto y haga una copia de seguridad en time machine antes de realizar cualquier cambio (este paso no es necesario, pero lo recomiendo encarecidamente).

2- Abre tu proyecto.

3- Haga doble clic o presione enter en el nombre del proyecto (icono azul superior) y cámbielo a lo que desee.

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 permitirá que deseleccione algunos de ellos si lo desea. Seleccionar todo y haga clic en aceptar.

4- Cambiar el nombre del Esquema

a) Haga clic en el menú situado junto al botón detener y seleccione Administrar esquemas.

b) Un solo clic lento o presione enter en el esquema de nombre antiguo y cámbielo a lo que desee.

c) Haga clic en Aceptar.

5 - Construir y ejecutar para asegurarse de que funciona.

NOTAS: En este punto todos los archivos de proyecto importantes deben ser renombrados excepto los comentarios en las clases creadas cuando el proyecto fue creado ni la carpeta de origen. A continuación vamos a cambiar el nombre de la carpeta en el sistema de archivos.

6- Cierre el proyecto.

7- Cambie el nombre de la carpeta principal y la carpeta de origen.

8- Haga clic derecho en el archivo project bundle .xcodeproj y seleccione "Mostrar contenido del paquete" en el menú contextual. Abre el .archivo pbxproj con cualquier texto Editor.

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.

 23
Author: fs_tigre,
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-01-03 03:55:45

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: XCode 8 enlace: http://help.apple.com/xcode/mac/8.0/#/dev3db3afe4f

 3
Author: PBJanrain,
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
2016-11-21 17:00:26

Uso Xcode 6+ y simplemente lo hago:

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

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

  • pop install
  • Abierto <new name>.xcworkspace
 1
Author: SLyHuy,
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-05-05 12:19:51

Una cosa más para probar!

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

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

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

  3. Revisa esos 2 archivos caminos. Lo más probable es que esas 2 rutas sigan apuntando al nombre de tu proyecto anterior. introduzca la descripción de la imagen aquí

Espero que eso ayude!

 1
Author: erparker,
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-06-02 22:20:37

Estoy usando este script después de cambiar el nombre de mi proyecto iOS. Ayuda a cambiar el nombre de los directorios y hacer que los nombres estén sincronizados.

Http://github.com/ytbryan/rename

NOTA: tendrá que cambiar manualmente el nombre del esquema.

 1
Author: ytbryan,
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
2016-06-17 10:29:11

Para cualquier otra persona que tenga problemas con los bloqueos de storyboard después de copiar su proyecto, diríjase a Principal.storyboard under Identity Inspector.

A continuación, compruebe que su módulo actual es el módulo renombrado correcto y no el antiguo.

 0
Author: Wraithseeker,
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-10-01 03:55:02

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.
Haciendo un poco de investigación he encontrado una entrada de blog de lo que parece ser el autor original del guion: http://mohrt.blogspot.it/2009/01/renaming-xcode-project-from-command.html , donde se puede descargar el script . Le di una oportunidad y ejecutarlo desde terminal como este

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

Funciona bien.
Información adicional se puede encontrar abriendo el archivo con un editor de texto. Esperanza que ayuda

 0
Author: Giorgio Tempesta,
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
2016-06-02 14:13:04

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)
 0
Author: Anton Malmygin,
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-03-05 00:05:37