Pregunta

Tengo dos proyectos, una aplicación Cocoa para iPhone y una biblioteca estática que utiliza.

Lo he probado con éxito en el simulador de iPhone, pero cuando intento implementarlo en mi dispositivo iPhone, obtengo (símbolo no encontrado) errores de enlace.

Si elimino la dependencia de la biblioteca, el proyecto se crea / ejecuta bien.

Me he asegurado de que todas las configuraciones de construcción estén configuradas para iPhoneOS, no para el simulador.

Estoy seguro de que es algo simple, pero ¿alguien tiene problemas similares al pasar del simulador de iPhone al dispositivo?

--EDIT: He logrado crear nuevos proyectos (uno para la aplicación y otro para la biblioteca estática), y lograr que se ejecuten en el iPhone o simulador. Pero tengo un problema muy extraño ... para cada proyecto específico, no puedo hacer que funcione para AMBOS el dispositivo y el simulador ... He verificado dos veces la configuración de la compilación, asegurándome de que las bibliotecas que están siendo referencias sean para la compilación correspondiente Configuraciones (creo) pero no puedo resolver estos errores de enlace.

Creo que debo estar haciendo algo muy mal ... toda la documentación de Apple dice "es muy simple: un clic", pero esto me está causando muchos problemas.

Probablemente esto tenga que ver con la configuración de compilación de xCode, pero parece que no entiendo por qué no funciona la selección de las diferentes plataformas de compilación y la reconstrucción de las bibliotecas.

¿Fue útil?

Solución

Echa un vistazo a mi respuesta a una pregunta similar para un enlace a un artículo que pueda ayudar. Hay un enlace a un artículo interesante.

Otros consejos

Finalmente, me di cuenta de cuál era el problema.

Cambié el objetivo de mi dispositivo del simulador al dispositivo iPhone, luego eliminé la biblioteca estática antigua (simulador) y adjunté la nueva biblioteca (dispositivo).

Todo bien, excepto la ruta de búsqueda de la biblioteca (en las configuraciones de compilación) todavía tenía el directorio del simulador listado primero, lo cual supongo que hace que se encuentre y se use en lugar del dispositivo.

Esto también explica por qué pude hacer que cada configuración funcione con un nuevo proyecto, pero solo tuve problemas para cambiar de configuración.

Es un problema simple y estúpido, pero uno que me causó dolor y tiempo. Todavía no estoy seguro de cómo establecer correctamente las configuraciones de compilación dependientes del destino, pero al menos si alguien tiene problemas similares, es algo que debe tener en cuenta.

He creado un tutorial completo sobre cómo crear y usar bibliotecas estáticas, este tutorial cubre el método que Apple también recomienda, tal vez a la gente le resulte útil:

http://www.sodeso.nl/?p=822

Las ventajas de este método es que recompila automáticamente la biblioteca de acuerdo con la configuración de su proyecto (por lo que no hay problemas con las compilaciones del dispositivo / simulador)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top