en un proyecto XCode, a menudo tengo el archivo xcodeproject / project.pbxproj cambiado, pero información inútil para mí, para compilar.
¿Debo ignorar este archivo y el archivo xcodeproject / projectxworkspace / username.xcuserdata / UserInterfaceState.xcuserstate?
Respuestas:
Actualización a la luz de Swift Package Manager: si está creando un proyecto como un paquete Swift, definitivamente debe ignorar este archivo, ya que se puede generar utilizando el sistema de archivos como fuente de verdad. Puedes hacerlo usando el siguiente comando:
Para respuestas que no sean de SwiftPM, consulte a continuación.
Este archivo contiene la lista de todos los archivos del proyecto, la configuración de los objetivos y los archivos que pertenecen a qué objetivos. Probablemente sea el archivo más sustancioso del paquete del proyecto. No debe ignorar este archivo. Hay algunos puntos para esto:
fuente
Ese es el único archivo que desea en sus repositorios del paquete xcodeproj. Ese archivo contiene toda la información de los archivos de destino y la configuración de compilación.
fuente
Desafortunadamente, si su configuración de compilación incluye la firma de código, debe volver a ingresar su entidad de firma de código después de cada "git pull" si otro miembro del equipo lo ha cambiado. Me parece que esta información debería estar en la configuración del usuario, no en el archivo pbxproj global.
fuente
Si excluye project.pbxproj, las compilaciones de Jenkins fallarán. Entonces esto es importante si usa Jenkins.
fuente
Descubrí que también necesito preservar el (los) archivo (s) xcworkspace. Si no, el proyecto con un subproyecto se rompió.
fuente
Puede usar Xcodegen para generar un pbxproj a partir de un archivo de especificación de proyecto YAML, luego puede ignorar pbxproj en git y generarlo cada vez que lo necesite.
Ya usé Xcodegen en un segundo proyecto que tiene una arquitectura modular (muchos pbxprojs) y más de 8 desarrolladores están trabajando en él.
https://github.com/yonaskolb/XcodeGen
Espero eso ayude.
fuente
Aquí está mi general
.gitignore
para mi proyecto Xcode.fuente