for - xcode mac
Proyecto Xcode 4: utilidad para limpiar el archivo pbxproj? (6)
Ben Mosher encontró la solución. Y sí se debe a un problema de fusión SVN.
Mientras trabajamos en equipo con SVN, el error ocurre a menudo, así que escribí un script de bash:
#!/bin/bash
sed "/(null) in/d" project.pbxproj > tmp_project.pbxproj
mv tmp_project.pbxproj project.pbxproj
Tengo un proyecto Xcode 4 con 2 objetivos, uno para iPhone y otro para iPad. Si hago clic en el objetivo del iPad e intento ir a Crear configuración, Xcode 4 se bloquea:
Se encontraron múltiples aserciones. La primera afirmación fue: FALTA DE ASERCIÓN en /SourceCache/IDEXcode3ProjectSupport/IDEXcode3ProjectSupport-269/Xcode3Sources/XcodeIDE/Frameworks/DevToolsBase Details en este caso nulo
Obviamente, el archivo pbxproj tiene una mala referencia en alguna parte, probablemente debido a las muchas combinaciones manuales que me han obligado a hacer git. ¿Hay alguna forma de limpiar el archivo pbxproj para que funcione correctamente de nuevo o para indicar qué línea está causando el problema? Realmente prefiero no tener que recrear el proyecto desde cero.
En caso de que también haya intentado eliminar las líneas de referencia (nulas) y eliminar la carpeta .xcuserdatad específica del usuario , y las que no funcionaron, esta es una solución potencial. FYI ... Esto fue experimentado en Xcode 7.3.1.
Aquí está el escenario que enfrenté:
Experimenté este problema que se desencadenó al tener ramas "gemelas" en un repositorio de git ... (es decir, una rama BRANCH_A es una rama de desarrollo con algunas funciones que no se debían lanzar, y otra que tenía los mismos compromisos excepto las nuevas, llamarlo BRANCH_B).
El flujo de trabajo de desarrollo es el siguiente: comience con BRANCH_B, cree una rama de confirmación CHANGE_C, realice cambios y confirme, luego marque BRANCH_A, cree una rama de confirmación, luego elija los cambios de CHANGE_C. BRANCH_A está siguiendo a BRANCH_B de esta manera, con sus archivos de características adicionales.
En mi caso, (por alguna razón, durante la rebasación de los cambios del compañero de trabajo que BRANCH_B rastrea, el archivo de proyecto para BRANCH_B se corrompió.
En este caso, la solución es guardar una copia del archivo de proyecto para BRANCH_A (que es bueno y compilar), luego revisar BRANCH_B y reemplazar su archivo de proyecto con la copia.
Inicialmente, no se compilará hasta que todas las referencias a los archivos de características (de BRANCH_A) se eliminen de las Fases de compilación de Target> Compilar orígenes.
Funciona genial.
Haga clic derecho en su archivo .xcodeproj y "Mostrar contenido del paquete".
Luego abra el archivo project.pbxproj con TextEdit y duplique.
Guarde el archivo duplicado en cualquier lugar con el mismo nombre y extensión. (proyecto.pbxproj)
Y reemplazar con el archivo antiguo.
Intenté el método de Gorbster sin éxito (aunque en el pasado me ha solucionado problemas similares).
Entré en mi archivo project.pbxproj
(dentro del paquete .xcodeproj
para el proyecto) y encontré dos líneas que parecían un poco sospechosas, ambas de la forma:
53A45F8F138FE6F40077017F /* (null) in Resources */ = {isa = PBXBuildFile; };
He eliminado las líneas y voilà: puedo acceder a mi configuración de compilación para este objetivo de nuevo.
No tengo idea de cómo llegaron allí en primer lugar. Supongo que algo que ver con una fusión defectuosa bajo SVN.
Intente los siguientes pasos mientras su XCode está cerrado.
Vaya a su archivo {YOUR_PROJECT} .xcodeproj en el buscador.
Haga clic derecho en el archivo {YOUR_PROJECT} .xcodeproj .
Elija Mostrar contenido del paquete ... esto abrirá los contenidos en otra pantalla del Finder.
Abra el archivo project.pbxproj y busque todas las líneas que tengan la cadena " (null) en "
Elimine todas las líneas que tengan (nulo) en ... no se preocupe ... borre con confianza.
Guarda tu archivo.
Ahora abra su proyecto usando XCode e intente abrir la pestaña Configuración de compilación ... con suerte, su problema se resolverá.
Gracias, Mohamed.
Me encontré con el mismo problema esta mañana después de sacar la fusión de un colega.
Pude arreglar esto con lo siguiente:
- Cerrar Xcode
- Abra el paquete .xcodeproj en Finder
- Elimine el archivo / paquete project.xcworkspace
- Abra la carpeta xcuserdata y elimine su carpeta .xcuserdatad específica del usuario .
- Re-Open Xcode y proyecto
Perdí algunas preferencias menores de usuario (historial de archivos y pestañas, etc.), pero ahora puedo hacer clic en todos los (9) objetivos sin ningún problema. Resulta que mi colega estaba en una versión anterior de Xcode, pero no estoy seguro de si esto contribuyó al bloqueo del IDE.