iphone - sesion - No se puede abrir el proyecto... no se puede abrir porque el archivo del proyecto no se puede analizar
maildrop apple (17)
He estado trabajando durante un tiempo para crear una aplicación para iPhone. Hoy, cuando mi batería estaba baja, estaba trabajando y constantemente guardando mis archivos fuente, luego se me cortó la corriente ...
Ahora, cuando conecté de nuevo mi computadora y está obteniendo una buena potencia, trato de abrir mi archivo de proyecto y me aparece un error:
No se puede abrir el proyecto
Proyecto ... no se puede abrir porque el archivo de proyecto no se puede analizar.
¿Hay alguna forma de que la gente sepa que puedo recuperarme de esto? Intenté usar un archivo de proyecto anterior y volver a insertarlo y luego compilar. Me da un error funky que es probablemente porque no está encontrando 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 más nuevas) ahora está funcionando.
Grandes puntos sobre el SVN. Tengo uno, pero ha habido algunos funkiness tratando de sincronizar XCode con él. Definitivamente pasaré más tiempo con eso ahora ... ;-)
Analiza la sintaxis de tu archivo de proyecto. Verifíquelo dentro de su proyecto en la terminal:
plutil -lint project.pbxproj
Esto le mostrará los errores del analizador.
Posible problema : algunos proyectos configuran git fusionando la union
estrategias para archivos de proyecto. Esto funciona la mayoría de las veces, pero matará silenciosamente su archivo de proyecto si falla. Esta estrategia se define en el archivo .gitattributes
en su repositorio.
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 syslog, encontró esa línea cuando Xcode intenta analizar el archivo:
2/7/14 12:39:12.792 PM Xcode[9949]: CFPropertyListCreateFromXMLData(): Old-style plist parser: missing semicolon in dictionary on line 4426. Parsing will be abandoned. Break on _CFPropertyListMissingSemicolon to debug.
Después de arreglar ese proyecto, se puede abrir bien.
Esto se debe a que los nombres de los proyectos no deben tener espacios en blanco entre ellos
Intenta encontrar HEAD y _HEAD entre líneas y elimina estas palabras en project.pbxproj. Haz una copia de seguridad de este archivo antes de hacer esto ...
Ir a la plataforma PhoneGapTest >> A continuación, elimine la carpeta ios después de que vaya a la terminal y escriba: sudo phonegap build ios después de eso, puede ejecutar el proyecto
La respuesta de Muhammad fue muy útil (y me ayudó a llegar a mi solución). 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 en bloque como este: / * Begin PBXGroup section * /) del archivo project.pbxproj. Sin embargo, el problema que encontré también puede ocurrir en otros lugares en el archivo project.pbxproj.
A continuación se muestra una simplificación del conflicto de fusión que encontré:
<<<<<<< HEAD
id = {
isa = PBXGroup;
children = (
id
);
name = "Your Group Name";
=======
id = {
isa = PBXGroup;
children = (
id
);
name = "Your Group Name";
>>>>>>> branch name
sourceTree = "<group>";
};
Cuando eliminé los marcadores de conflicto de fusión, esto es lo que me quedó:
id = {
isa = PBXGroup;
children = (
id
);
name = "Your Group Name";
id = {
isa = PBXGroup;
children = (
id
);
name = "Your Group Name";
sourceTree = "<group>";
};
Normalmente, la eliminación de 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:
id = {
isa = PBXGroup;
children = (
id
);
name = "Your Group Name";
sourceTree = "<group>";
};
id = {
isa = PBXGroup;
children = (
id
);
name = "Your Group Name";
sourceTree = "<group>";
};
De hecho, tuve que agregar 2 líneas al final del primer PBXGroup.
Puedes ver que si hubiera elegido descartar los cambios de Head o de la rama fusionada, ¡no habría habido un problema de análisis! Sin embargo, en mi caso quería mantener los dos grupos que agregué de cada sucursal y simplemente eliminar los marcadores de fusión no fue suficiente; Tuve que agregar líneas adicionales al archivo project.pbxproj para mantener el formato correcto.
Por lo tanto, si se encuentra con problemas de análisis después de haber pensado que había resuelto todos sus conflictos de fusión, ¡podría examinar más detenidamente el .pbxproj y asegurarse de que no haya problemas de formato!
La subversion corromperá mi archivo de proyecto después de una actualización casi semanalmente. Intento descubrir por qué lo hace ahora y encontré este problema.
Me encontré con el mismo problema. Eliminé 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, traté de cerrar Xcode y abrir el proyecto cuando se cerró Xcode ... luego funcionó. Espero que esto ayude a alguien.
EDITAR:
para resolver conflictos en su archivo .xcodeproj, puede usar esta práctica secuencia de comandos:
- Crea un archivo .sh vacío en el directorio de tu proyecto (ej. Resolve_conflicts.sh)
Aquí está el guión:
archivo de proyecto =
find -d . -name ''project.pbxproj''
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 $ archivo de proyecto
Ejecútelo desde la terminal usando el comando sh: sh resolve_conflicts.sh
Me encontré con este problema y mi superior me habló de una solución, es decir:
Haga clic con el botón derecho en su archivo projectname.xcodeproj
aquí projectname
será el nombre de su proyecto. Ahora, después de hacer clic derecho, selecciona Mostrar contenido de paquetes . Después de eso, abra su archivo projectname.pbxproj
en un editor de texto. Ahora busque la línea que contiene <<<<<<< .mine
, =======
y >>>>>>> .r
. Por ejemplo, en mi caso parecía que esto
<<<<<<< .mine
9ADAAC6A15DCEF6A0019ACA8 .... in Resources */,
=======
52FD7F3D15DCEAEF009E9322 ... in Resources */,
>>>>>>> .r269
Ahora elimine esas <<<<<<< .mine
, =======
y >>>>>>> .r
para que se vea así
9ADAAC6A15DCEF6A0019ACA8 /* BuyPriceBtn.png in Resources */,
52FD7F3D15DCEAEF009E9322 /* discussionForm.zip in Resources */,
Ahora guarde y abra su proyecto Xcode y compárelo. Todo estará bien.
Me enfrenté al mismo problema recientemente al intentar fusionar mi sucursal con una sucursal 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 sucursal o la sucursal remota. Sin embargo, mi archivo projectName.xcodeproj se rehusaría a abrir por el mismo motivo que se muestra en la pregunta.
Mi solución fue buscar en el project.pbxproj usando un editor de texto y encontrar si había irregularidades en la sintaxis del archivo (por ejemplo, un corchete extra). Aceleré este proceso enfocándome en las líneas que se insertaron o eliminaron en un archivo antiguo en comparación con el archivo fusionado. En un examen más detallado, encontré que la causa de mi problema era la repetición de la siguiente línea:
xxxxxxxxxxxxx /* [CP] Check Pods Manifest.lock */ = {
en mi archivo fusionado Esto condujo a un corchete rizado no cerrado y la consiguiente sintaxis pbxproj no válida. Eliminar la línea anterior solucionó mi problema.
Obtuve exactamente el mismo error porque Cordova te permitirá crear un proyecto con espacios en él, y Xcode no sabe cómo tratarlo.
Parece que va a tener que crear un nuevo proyecto en Xcode, ir al directorio anterior y arrastrar todos sus archivos fuente, plumillas y recursos a la barra lateral de archivos de Xcode en el nuevo proyecto. No debería tomar más de unos pocos minutos, a menos que realmente haya trabajado mucho con configuraciones u objetivos personalizados. O eso, o revierte al último check-in en tu control fuente y agrega manualmente cualquier archivo de código que haya cambiado de aquí a entonces.
Revertir el proyecto.pbxproj
svn revert --filename--
Simplemente revise el archivo project.pbproject y haga una diferencia con una versión de trabajo del archivo del proyecto.
Muchas veces esto sucede cuando tienes conflictos desde 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
Tuve un problema similar.
A continuación se muestran los pasos para resolverlo:
Navega a la carpeta donde está tu
projectName.xcodeproj
.Haga clic derecho y seleccione ''
Show Package Contents
''. Podrá ver la lista de archivos con la extensión.pbxproj
.Seleccione
project.pbxproj
. Haga clic derecho y abra este archivo usando ''Text Edit
''.Podrás ver
<<<<<< .mine
,============
y>>>>>>>>>> .r123
. En general, se trata de conflictos que surgen cuando se actualiza desde SVN. Eliminar estos y guardar el archivo.Ahora, podrá abrir el proyecto sin ningún mensaje de error .
Y una vez que tenga las cosas funcionando de nuevo, debería considerar el uso de algo como subversión o mercurial para respaldo y control de revisiones. Recuerde que los electrones no siempre van donde se supone que deben, ¡haga copias de seguridad temprano y con frecuencia!
cambie el nam de la carpeta del proyecto actual y el módulo de verificación el mismo proyecto. Luego agregue los cambios actuales al archivo.