Error de compilación de la aplicación para iPhone con bibliotecas estáticas en la compilación de distribución

StackOverflow https://stackoverflow.com/questions/1446772

Pregunta

Actualmente estoy tratando de construir el producto de distribución de mi (primera) aplicación para iPhone para que pueda cargarse en la App Store. Revisé todo el proceso del perfil de ID de aplicación y aprovisionamiento de distribución y finalmente obtuve la configuración de compilación del organizador y del objetivo para reconocerlo.

El problema es que al configurar la "Configuración activa" en " Distribución " (duplicado de la configuración "Release" según las instrucciones del Centro de desarrollo de iPhone) No puedo obtener el código para compilar. El proyecto contiene una referencia a una biblioteca estática que contiene varias clases que se utilizan como clases base en muchas de las clases del proyecto. Entonces, al compilar en la configuración de Distribución, el compilador arroja errores que dicen que no puede encontrar las clases base de la biblioteca estática, y la compilación falla.

Si cambio la configuración activa. para " Depurar " (como se usa en el desarrollo) no hay ningún problema, y ??la aplicación se compila correctamente como se esperaba.

No puedo encontrar cuál podría ser el problema. Encontré esta otra pregunta similar aquí, pero parece ser un caso diferente:

distribución de la biblioteca estática del iPhone y liberar errores de compilación (pero no para depurar)

Google también parece no tener muchos resultados útiles. También verifiqué la información del objetivo en la sección Construir, y cambié entre '' Depurar '' y "Distribución" configuraciones para verificar cualquier diferencia relevante, pero hasta ahora no se ha encontrado a nadie. En realidad no encontré ninguna información relevante sobre la lib estática. Solo en la pestaña General de la ventana de información, pero la biblioteca estática se muestra correctamente en las dependencias directas.

Entonces, en este punto no tengo ni idea. He tratado de seguir las instrucciones lo más exactamente posible, pero supongo que eso no fue suficiente y ahora tengo problemas. Supongo que la solución debería ser algo simple (tal vez solo establezca algún parámetro, en algún lugar), sin embargo, no he podido averiguarlo.

¿Podría por favor (POR FAVOR :)) proporcionar alguna ayuda sobre esto. Cualquier ayuda o sugerencia, es muy apreciada.

¡Gracias de antemano!

¿Fue útil?

Solución

Verifique las opciones de compilación para la configuración de Depuración; por ejemplo, las rutas de búsqueda de encabezado para la configuración de depuración pueden ser diferentes a las de la configuración de distribución. Seleccione los menús Proyecto > Edite la Configuración del proyecto y escriba: Encabezados de búsqueda de encabezado para verificar esa configuración para la Configuración listada. Si algo es diferente entre las configuraciones, haga lo mismo para ambas.

Otros consejos

Aquí está:

Para realizar la compilación de distribución, (según las instrucciones del Centro de desarrollo de iPhone) debe hacer una copia de " Release " configuración y asígnele el nombre "Distribución", y luego cree el proyecto en esta Configuración activa. Comprobación de las "Rutas de búsqueda de encabezado" En la ventana de información del objetivo para las configuraciones de Depuración y Distribución, noté una diferencia en el valor, que se estableció como (para ambas configuraciones):

$ {BUILD_STYLE} - $ {PLATFORM_NAME} / usr / local / include

por lo que resultó en $ {BUILD_STYLE} - $ {PLATFORM_NAME} reemplazado con " Debug-iphoneos " y "Distribución-iphoneos" para cada config. Todas las clases base de la biblioteca estática se almacenaron en " include " carpeta, sin embargo, no había una "Distribución-iphoneos" carpeta.

Esto se debió a que no agregué una " Distribución " configuración en el proyecto de lib estática, como lo hice en el proyecto de la aplicación principal (no sabía que tenía que hacerlo). Entonces, para solucionar el problema, solo agregué la misma configuración. en el proyecto estático lib y lo construyó.

Entonces, en resumen, si agrega una nueva configuración en un proyecto que usa clases de una biblioteca estática referenciada, también agregue esa misma configuración en el proyecto de biblioteca estática y realice una compilación. De esta forma, el proyecto principal podrá encontrar las clases base.

Tal vez esto sea realmente algo básico, lo siento, solo estoy aprendiendo el idioma (y XCode) :).

Espero que esto ayude, gracias a Alex nuevamente.

Saludos

He oído hablar de problemas con el enlazador con el iPhone OS 3.0 SDK; Algunas de las soluciones incluyen la adición de -all_load a los indicadores del vinculador al crear su proyecto (aunque esto podría tener efectos secundarios no deseados). Otra opción es actualizar al SDK 3.1, donde creo que estos problemas se han resuelto. Por supuesto, este podría no ser su problema en absoluto ...

Otros lugares de ayuda:

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