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.
fuente
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.
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.
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.
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.
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.
Muchas gracias a Nick Lockwood y Pauly Glott por proporcionar respuestas separadas a este problema.
*.xcodeproj/project.pbxproj
archivo 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.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.
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.
6- Cerrar el proyecto.
7- Renombra la carpeta principal y la fuente.
8- Haga clic derecho en el
.xcodeproj
archivo 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
fuente
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
fuente
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.
NOTA: deberá cambiar manualmente el nombre del esquema.
fuente
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
funciona bien.
Se puede encontrar información adicional al abrir el archivo con un editor de texto. Espero que ayude
fuente
Estoy usando Xcode 6+ y solo hago:
*.xcodeproj or *.xcworkspace
Aquí está hecho, pero el nombre de la ventana Xcode y
*.xcodeproj or *.xcworkspace
aún<old-name>
. Entonces lo hago:pop install
<new name>.xcworkspace
fuente
¡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ó:
Haga clic en la configuración de su proyecto y seleccione su objetivo de prueba
Haga clic en la configuración de compilación y busque "host de prueba"
Verifique esas 2 rutas de archivo. Lo más probable es que esas 2 rutas sigan apuntando a su antiguo nombre de proyecto.
¡Espero que ayude!
fuente
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.
fuente
Estoy usando un script BASH simple para cambiar el nombre.
Uso:
./rename.sh oldName newName
Notas:
.git
y.DS_Store
fuente