2011-06-01 11 views
17

Tengo un proyecto de iOS que se basa en un proyecto de marco que usamos en diferentes proyectos de iOS. El marco está incluido en el proyecto de la aplicación como un proyecto xcode. El proyecto de la aplicación tiene una dependencia en el objetivo de compilación de la biblioteca estática del marco. (Similar a la mayoría de las bibliotecas de código abierto como three20)Cambiar el origen de una biblioteca estática necesita limpieza y compilar en xcode 4

El problema es que si cambio algo en el código fuente del framework la biblioteca estática no se reconstruye cuando construyo & ejecuto el proyecto de la aplicación.

Hacer una limpieza seguida de una compilación & ejecutar los cambios se compilan correctamente. Hacer una reconstrucción cada vez que cambio algo en el marco no es una buena solución por razones obvias.

¿Hay alguna configuración que deba cambiar para que xcode identifique correctamente mi marco como sucio y lo construya en consecuencia?

estoy usando Xcode 4.0.2

+0

tiene el mismo problema.Necesito una compilación limpia si actualizo el origen de la biblioteca. ¿Lo has resuelto? Gracias. –

Respuesta

22

Esto es un error en xcode 4.0.2 (puede corregirse en la versión futura). De https://devforums.apple.com/thread/91711?start=25&tstart=0:

  1. Establecer bibliotecas estáticas en proyecto, dentro de los marcos a: Relativo a los productos Construir
  2. Cerrar XCode
  3. Editar project.pbxproj y eliminar todos los componentes de la ruta de la biblioteca estática de manera que sólo el filname sigue siendo, como esto (la parte importante es "path = libLibrary.a")

    A74F787413566130000D0AFC/* libLibrary.a */= {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libLibrary.a; sourceTree = BUILT_PRODUCTS_DIR; };

+0

funcionó perfectamente, gracias – jimj

+0

No puedo creer que este problema todavía exista 2 años después. – eladleb

+2

No puedo creer que este problema aún exista X años después – yeesterbunny

0

Te posiblemente falta una dependencia entre el objetivo y la biblioteca estática.

Para agregar una dependencia:

  1. de arrastrar/soltar el proyecto de biblioteca Xcode estática en su proyecto

    1b. agrega la biblioteca a los marcos de tu aplicación (entiendo que ya está allí);

  2. seleccione su destino; mostrar el panel de Información;

  3. vaya a Dependencias, haga clic en "+", luego seleccione su lib estática.

Estas instrucciones son válidas para 3.2.x Xcode pero espero que en base a ello se puede encontrar fácilmente su manera de salir de esto con Xcode 4.

EDIT: Para Xcode 4, marque this y this (la parte editada de la pregunta para una solución alternativa).

+0

Los pasos son un poco diferentes en xcode 4. Pero ya lo hice, de lo contrario, mi proyecto nunca se compilaría sin errores. El problema no es que recibo errores durante la compilación, sino que los cambios en el proyecto de la biblioteca no se reconocerán al hacer una compilación normal. Solo una limpieza y construcción funcionarán. – sliver

+0

Si configura correctamente la dependencia, entonces no sé qué pensar. Tenga en cuenta que solo se requiere el paso 1 anterior para compilar correctamente. Agregar una biblioteca para vincular es diferente de agregarlo también como una dependencia. – sergio

0

Añadir un paso de guión donde se establece el archivo modificado main.m

#Force dependencies' relink 
touch MyProject/main.m 
Cuestiones relacionadas