2012-09-07 24 views
8

estoy tratando de incrustar un private framework (último párrafo) en mi paquete de aplicaciones utilizando XCode 4 y siguientes de Apple (aparentemente) instructions obsoleta.¿Cómo agregar el marco privado a las dependencias de destino?

En mi caso, soy Uso de proyectos de Xcode separados para cada objetivo. Este es el último paso:

En la pestaña General de la ventana del inspector, agregue su marco como una dependencia para la aplicación. Al agregar esta dependencia, Xcode genera el objetivo del marco antes de generar el objetivo de la aplicación.

La dependencia de construcción a establecer en el objetivo de la aplicación hace que el marco que se construyó antes de la aplicación. Esto es importante porque garantiza que una versión construida de su marco estará disponible para vincular e incrustar en la aplicación. Debido a esta dependencia, puede establecer el destino activo de su proyecto Xcode en su aplicación y dejarlo allí. La creación de la aplicación ahora crea el marco y lo copia en el directorio del paquete de aplicaciones, creando el vínculo necesario entre los dos.

Sin embargo, cuando en haga clic en el botón + en Dependencias objetivo el marco no aparece. ¿Cómo puedo establecer una dependencia de compilación entre el marco privado y el objetivo de la aplicación en Xcode 4?

Editar: Debo aclarar que ya tengo el marco de trabajo privado funcionando. Solo quiero evitar tener que limpiar el proyecto cada vez que se realiza un cambio en el marco, y asegurarme de que el marco esté construido antes del objetivo de la aplicación.

+0

¿Tiene un objetivo para el marco en el proyecto? Si no, vas a tener que agregar uno. Las dependencias objetivo son para los objetivos. No se puede convertir una estructura única en una dependencia de destino. –

+0

No, no tengo un objetivo (vea Usar proyectos separados de Xcode para cada objetivo en el enlace). ¿Estás diciendo que ya no es posible hacer lo que describe la documentación? – hpique

+0

La documentación nunca dijo que podría hacer un marco de una dependencia de destino. Dice que puedes hacer que un marco meta una dependencia objetivo. La parte engañosa de lo que citó está en la primera oración cuando dice "agregue su marco como una dependencia". Sería más claro si dijera "agregue su objetivo de marco como una dependencia". Enlace su marco de trabajo al proyecto de la aplicación como se explica en la respuesta de srinaidu. –

Respuesta

9

Se solucionó al agregar el proyecto de marco privado como subproyecto, luego se agregó el objetivo de marco en Dependencias de destino.

Sin embargo, en mi caso el objetivo del marco no se mostraba como una opción en Dependencias de destino hasta que eliminé DerivedData. Ese desagradable pequeño error me volvió loco.

+0

Acabo de cerrar el área de trabajo y lo volví a abrir, y luego pude agregar el destino como una dependencia. Aquí hay un buen tutorial sobre el proceso: http://pymatics.com/2011/12/23/tutorial-develop-a-private-framework-for-your-mac-app-using-xcode-4s-workspace-feature – GTAE86

+0

necesita ambos. Aunque Xcode resuelve las dependencias automáticamente en estos días, será bueno para los demás que naveguen en su proyecto SABER que su aplicación depende de su marco de trabajo privado. –

1

Seleccione su proyecto en Xcode y luego puede encontrar el Proyecto y el Objetivo en el lado derecho. Luego seleccione Target e ir a LinkBinary con Bibliotecas y luego vendrá una ventana y allí en la parte inferior izquierda hay una opción llamada Agregar otro.

+0

Ese es un paso previo y sin él el marco no funcionaría. Ya tengo el marco funcionando. Ahora quiero asegurarme de que el framework esté construido antes del objetivo de la aplicación. – hpique

0

Si desea añadir su marco privado sin incluirla como un proyecto secundario, hay que agregar una copia de archivos tarea para ello:

Copy Files task

Seleccione su marco con la + botón y elija Frameworks para Destino.

No necesita agregar nada en Dependencias de destino.

también para que esto funcione, asegúrese de RUNPATH rutas de búsqueda valor es @executable_path/Frameworks en el pestaña configuración de generación.

Cuestiones relacionadas