8

Tengo una pregunta más general sobre cómo trabajar con las bibliotecas en Xcode cuando construyo aplicaciones de iPhone. Creé un framework de un proyecto en el que he estado trabajando para usar algunas partes de él en otras aplicaciones. Eso funciona bastante bien, hasta ahora. Pero no tengo idea de cómo depurar en los archivos incluidos en el marco incluido.Depuración de una biblioteca con Xcode

Espero obtener algún tipo de 'mejor práctica' sobre eso.

Muchas gracias
-f

Respuesta

4

En general, incluiré el proyecto de Xcode para la biblioteca como una dependencia externa del proyecto del proyecto de la aplicación principal. La ventaja de las dependencias del proyecto es que puede agregar una fase de compilación que construya una copia nueva de su biblioteca junto con el proyecto principal y, por supuesto, le permitirá establecer puntos de interrupción en el código de la biblioteca.

6

Ha habido muchas discusiones sobre la mejor manera de reutilizar el código con bibliotecas estáticas. Me he decidido por el método descrito por Clint Harris (here) (que creo que es lo que Shawn también está sugiriendo). La creación de una dependencia de proyecto de esta manera compila automáticamente la biblioteca para el objetivo de su proyecto (simulador/dispositivo, depuración/publicación) para que no necesite cuatro copias diferentes de la biblioteca compilada. También le permite acceder a la fuente de la biblioteca al realizar la depuración, como desee. Finalmente, las actualizaciones de la biblioteca se incluyen en cualquiera de los proyectos vinculados la próxima vez que se compilan esos proyectos (para que no tenga que volver a compilar y redistribuir el binario de la biblioteca para esos proyectos).

+0

¡Hola Tim! Gracias por esa pista. Esa integración funciona muy bien. Pero todavía no puedo depurar mi biblioteca utilizando puntos de interrupción. ¿Hay algún tipo de paso adicional que deba hacer? – flohei

+0

Acabo de jugar con esto y encontré lo siguiente: de forma predeterminada, cuando establezco un punto de interrupción en mi proyecto de biblioteca, en realidad no se rompe en ningún proyecto vinculado, como observa. Sin embargo, hago clic con el botón derecho en el punto de interrupción, selecciono "Editar punto de interrupción" y en la ventana Puntos de interrupción arrastro ese nuevo punto de interrupción al nombre de mi proyecto vinculado en la sección "Grupos y archivos". O puede arrastrarlo a "Global Breakpoints", pero luego se romperá en cualquier proyecto vinculado. Una vez que he cambiado esa configuración, el punto de interrupción funciona en el proyecto vinculado. ¿Esto funciona para tí? –

+0

Esto funciona pero hubo un problema: si tiene ambos proyectos abiertos, el subproyecto no aparecerá como un proyecto completo en el proyecto principal. Así que cierre el subproyecto antes de agregarlo. (XCode se queja de que causaría un problema de integridad de datos para tener el mismo proyecto abierto en dos lugares). – nont

Cuestiones relacionadas