He estado trabajando durante un tiempo para crear una aplicación para iPhone. Hoy, cuando mi batería estaba baja, estaba trabajando y guardando constantemente mis archivos de origen, luego se cortó la energía ...
Ahora, cuando volví a enchufar mi computadora y está obteniendo buena energía, trato de abrir el archivo de mi proyecto y aparece un error:
No se puede abrir el proyecto
Proyecto ... no se puede abrir porque el archivo del proyecto no se puede analizar.
¿Hay alguna forma en que la gente sepa que puedo recuperarme de esto? Intenté usar un archivo de proyecto más antiguo y volver a insertarlo y luego compilarlo. Me da un error extraño que probablemente se deba a que no encuentra todos los archivos que quiere ...
Realmente no quiero reconstruir mi proyecto desde cero si es posible.
EDITAR
Ok, hice una diferencia entre esto y un archivo de proyecto un poco más antiguo que funcionó y vi que había algo de corrupción en el archivo. Después de fusionarlos (las partes buenas y las más nuevas) ahora está funcionando.
Grandes puntos sobre el SVN. Tengo uno, pero ha habido algunos problemas al intentar sincronizar XCode con él. Definitivamente pasaré más tiempo con él ahora ... ;-)
La respuesta de Muhammad fue muy útil (y me ayudó a solucionar mi problema). Sin embargo, simplemente eliminar el >>>>>>> ======= <<<<<<< no fue suficiente para solucionar el problema de análisis en el project.pbxproj (para mí) al mantener los cambios de ambas ramas después de una fusión.
Tuve un conflicto de fusión en la sección PBXGroup (cuyo comienzo está indicado por un comentario de bloque como este: / * Begin PBXGroup section * /) del archivo project.pbxproj. Sin embargo, el problema que encontré también puede ocurrir en otros lugares del archivo project.pbxproj.
A continuación se muestra una simplificación del conflicto de fusión que encontré:
Cuando eliminé los marcadores de conflicto de fusión, esto es lo que me quedó:
Normalmente, eliminar los marcadores de conflicto de combinación solucionaría el problema de análisis en el archivo project.pbxproj y restauraría la integridad del espacio de trabajo. Esta vez no fue así.
A continuación se muestra lo que hice para resolver el problema:
De hecho, tuve que agregar 2 líneas al final del primer PBXGroup.
Puede ver que si hubiera elegido descartar los cambios de Head o de la rama de fusión, ¡no habría habido un problema de análisis! Sin embargo, en mi caso, quería mantener los dos grupos que agregué de cada rama y simplemente eliminar los marcadores de combinación no fue suficiente; Tuve que agregar líneas adicionales al archivo project.pbxproj para mantener el formato correcto.
Por lo tanto, si tiene problemas de análisis después de pensar que ha resuelto todos sus conflictos de fusión, es posible que desee examinar más de cerca el .pbxproj y asegurarse de que no haya problemas de formato.
fuente
Recibí exactamente el mismo error porque Cordova te permitirá crear un proyecto con espacios y Xcode no sabe cómo manejarlo.
fuente
Tuve un problema similar.
A continuación se muestran los pasos para resolverlo:
Navegue a la carpeta donde su
projectName.xcodeproj
.Haga clic derecho y seleccione '
Show Package Contents
'. Podrá ver la lista de archivos con.pbxproj
extensión.Seleccione
project.pbxproj
. Haga clic derecho y abra este archivo usando 'Text Edit
'.Usted será capaz de ver
<<<<<< .mine
,============
y>>>>>>>>>> .r123
. Por lo general, estos son conflictos que surgen cuando se actualiza desde SVN. Elimínelos y guarde el archivo.Ahora, podrá abrir el proyecto sin ningún mensaje de error .
fuente
El análisis visual del archivo del proyecto Xcode no me ayudó a localizar el error después de la fusión. Después de buscar en syslog, encontró dicha línea cuando Xcode intentaba analizar el archivo:
Después de arreglar ese proyecto se puede abrir bien.
fuente
Analice la sintaxis de su archivo de proyecto. Compruébalo dentro de tu proyecto en la terminal:
plutil -lint project.pbxproj
Esto le mostrará los errores del analizador.
Posible problema : algunos proyectos establecen una estrategia de fusión de git
union
para los archivos del proyecto. Esto funciona la mayoría de las veces, pero matará silenciosamente su archivo de proyecto si falla. Esta estrategia se define en el.gitattributes
archivo de su repositorio.fuente
Recientemente me enfrenté al mismo problema al intentar fusionar mi rama con una rama remota. Sin embargo, ninguna de las soluciones anteriores parecía apropiada para mi problema.
No hubo conflictos de fusión entre el archivo project.pbxproj en mi rama o la rama remota. Sin embargo, mi archivo projectName.xcodeproj se negaría a abrirse por el mismo motivo que se muestra en la pregunta formulada.
Mi solución fue buscar en project.pbxproj usando un editor de texto y encontrar si había alguna irregularidad en la sintaxis del archivo (por ejemplo, un corchete extra). Aceleré este proceso centrándome en las líneas que se insertaron o eliminaron en el archivo antiguo en comparación con el archivo combinado. En un examen más detenido, encontré que la causa de mi problema era la repetición de la siguiente línea:
en mi archivo combinado. Esto condujo a un corchete sin cerrar y la consiguiente sintaxis pbxproj no válida. Eliminar la línea anterior solucionó mi problema.
fuente
Me encontré con el mismo problema. Eliminé las cadenas generadas por git como siempre, pero Xcode aún se negó a abrir el archivo .xcodeproj. Pero todo estaba correcto, no faltaban corchetes, etc. Finalmente intenté salir de Xcode y abrir el proyecto cuando Xcode estaba cerrado ... luego funcionó. Espero que esto ayude a alguien.
EDITAR:
para resolver conflictos en su archivo .xcodeproj, puede usar este útil script:
Aquí está el guión:
projectfile =
find -d . -name 'project.pbxproj'
projectdir =echo *.xcodeproj
projectfile = "$ {projectdir} /project.pbxproj" tempfile = "$ {projectdir} /project.pbxproj.out" savefile = "$ {projectdir} /project.pbxproj.mergesave"cat $ projectfile | grep -v "<<<<<<< HEAD" | grep -v "=======" | grep -v "^ >>>>>>>"> $ tempfile mv $ tempfile $ projectfile
Ejecútelo desde la terminal usando el comando sh: sh resolve_conflicts.sh
fuente
resolve_conflicts.sh: line 1: -d: command not found resolve_conflicts.sh: line 3: $tempfile: ambiguous redirect
Revertir el project.pbxproj
svn revert - nombre de archivo--
fuente
Pasos a seguir: - 1. Navegue a la carpeta donde se encuentra su projectName.xcodeproj 2. Haga clic derecho y seleccione 'Mostrar contenido del paquete'. Podrá ver la lista de archivos con la extensión .pbxproj. 3.Seleccione project.pbxproj. Haga clic derecho y abra este archivo usando 'Editar texto'. 4. Podrá ver <<<<<<, ============ y >>>>>>>>>>. Por lo general, estos son conflictos que surgen cuando se actualiza desde Sourcetree / SVN / GITLAB. Elimínelos y guarde el archivo. 5.Ahora, podrá abrir el proyecto sin ningún mensaje de error.
fuente
Parece que vas a tener que crear un nuevo proyecto en Xcode, ir al directorio antiguo y arrastrar todos tus archivos fuente, plumillas y recursos a la barra lateral de archivos Xcode en el nuevo proyecto. No debería tomar más de unos minutos, a menos que realmente haya trabajado mucho con configuraciones u objetivos de compilación personalizados. O eso, o volver al último registro en su control de código fuente y agregar manualmente cualquier archivo de código que haya cambiado entre ahora y entonces.
fuente
Y una vez que las cosas funcionen nuevamente, debería considerar el uso de algo como subversion o mercurial para el control de copias de seguridad y revisiones. Recuerde que los electrones no siempre van a donde se supone que deben ir, ¡retroceden temprano y con frecuencia!
fuente
cambie el nombre de la carpeta del proyecto actual y el módulo de pago del mismo proyecto, luego agregue los cambios del archivo actual.
fuente
Simplemente verifique el archivo project.pbproject y haga una diferencia con una versión funcional del archivo del proyecto.
A menudo, esto sucede cuando tiene conflictos con un sistema de control de versiones como el publicado aquí: El archivo de usuario no se puede analizar en subversión en MAC iphone SDK
fuente
Intente encontrar HEAD y _HEAD entre las líneas y elimine estas palabras en project.pbxproj. Haga una copia de seguridad de este archivo antes de hacer esto ...
fuente
Ir a PhoneGapTest >> plataforma Luego, elimine la carpeta ios, luego vaya a la terminal y escriba: sudo phonegap build ios después de eso, puede ejecutar el proyecto
fuente
Al revertir, puede deshacer el código extraído.
Si desea deshacer esa solicitud de extracción, simplemente coloque este comando en la ruta del proyecto
->
git merge --abort
fuente
En caso de que no encontrara en Text === o <<< o >>>> como era para mí, el problema fue realmente simple y divertido ... Cambio el nombre de la aplicación en Xcode, pero no lo cambio en UnityProjectSettings antes de compilar - ese era el problema ...
fuente
subversion dañará mi archivo de proyecto después de un svn up casi semanalmente. Estoy tratando de averiguar por qué hace esto en este momento y encontré este problema.
fuente
Esto se debe a que se supone que los nombres de los proyectos no deben tener espacios en blanco entre ellos.
fuente