2010-05-31 17 views
5

He creado un marco de trabajo de Cocoa que deseo redistribuir. El problema es, sin embargo, que no se ejecutará fuera de Xcode. He leído algo sobre @executable_path/../Frameworks, que no incluí, porque no sé dónde ponerlo:/Creando un Marco de Cocoa

Por lo tanto, ejecuto mi aplicación en Xcode utilizando la variable DYLD_FRAMEWORK_PATH que funciona bien, pero solo en Xcode - si intento ejecutarlo solo, se bloquea de inmediato y dice IMAGE NOT FOUND.

Estoy seguro de que @executable_path/../Frameworks es lo que falta, pero no sé dónde ponerlo.

¿Alguien podría ayudarme, por favor? :)

Gracias

+1

¿Qué quiere decir con _running_ su marco? Los marcos generalmente no tienen código ejecutable directamente. Además, ¿leyó la Guía de Programación de Marco? http://developer.apple.com/mac/library/documentation/MacOSX/Conceptual/BPFrameworks/Frameworks.html#//apple_ref/doc/uid/10000183-SW1 Tal vez incluso si lo hojeas te dará tus respuestas. – zneak

+0

por supuesto que lo he leído. El marco se importa a mi aplicación, pero se bloquea al inicio. La guía también habla sobre la configuración de '@executable_path /../ Frameworks', pero no sé dónde está eso. – Pripyat

+0

He intentado establecer el parámetro "directorio de instalación" en la configuración del Proyecto, pero aún falla. Todavía dice 'dyld: Library not loaded:' and 'Image not found' – Pripyat

Respuesta

3

Así es como normalmente me las arreglo cosas:

  1. En proyecto de Xcode del marco, establecer el directorio de instalación de @rpath

  2. Añadir el marco de su aplicación Proyecto Xcode. Agregue una fase de compilación Copiar archivos, seleccione Marcos en la ventana emergente Destino y asegúrese de agregar su marco de trabajo para que se copie en el directorio de marcos de su aplicación cuando se construya.

  3. Finalmente, en la configuración de su proyecto, agregue @loader_path /../ Frameworks a las rutas de búsqueda de Runpath.

+0

Creo que no es feliz con el @executable_path - He cargado una captura de pantalla del registro de ejecución aquí: http://web.me.com/david.schiefer/error.tiff – Pripyat

+0

Si usa @rpath no es necesario para @executable_path, por lo que no estoy seguro de por qué está viendo este error. – sbooth

0

¿Está realmente copiando el marco en su paquete de aplicaciones? Busque la carpeta llamada MacOS, que es lo que contiene el binario. Debería haber otra carpeta en el mismo nivel llamada Frameworks y debería tener el marco dentro de ella.

Si no está allí, necesita crear una fase de compilación de archivos de copia para la aplicación que copia el marco en la carpeta de Frameworks.

+0

al hacer clic en "Mostrar contenido", veo un Frameworks (tiene mi framework en él), Resources y MacOS. – Pripyat

+0

y sí, tiene mi framework en él, pero todavía no funciona – Pripyat

+0

OK, lo siguiente es averiguar dónde cree que debería ser la aplicación. Abra una sesión de terminal, vaya al directorio de MacOS y ejecute 'otool -L' en el binario. – JeremyP