xcode - development - ios frameworks
El proyecto de archivado en Xcode crea incorrectamente un paquete de aplicaciones mĂșltiples (5)
Archivar mi proyecto en Xcode es crear un paquete de aplicaciones múltiples, en lugar de agrupar mi objetivo principal para su lanzamiento, que es lo que quiero. Específicamente, cuando valido mi archivo en Organizador, me da el mensaje:
"[projectname] no contiene una aplicación de paquete único o contiene múltiples productos. Seleccione otro archivo o ajuste su esquema para crear una aplicación de paquete único".
Parece que hay alguna configuración en el esquema que debe ajustarse, pero no puedo entender qué causa que se incluyan otros objetivos.
Estoy usando Xcode 4.0 por cierto.
Hice lo siguiente para que funcione para mí:
- para la biblioteca estática three20, usé cocoapods para incluir los archivos dentro del proyecto principal ... simplemente me deshice de todos los problemas que tres20 me estaban dando (y son muchos). Por cierto, traté de reemplazar tres20 con Nimbus ... pero Nimbus carecía de algunas de las características para las que mi proyecto estaba usando tres20 ... por lo que Nimbus no fue útil.
- establezca skip install en yes en la configuración de compilación para todos los otros sub proyectos / bibliotecas estáticas y cambie los encabezados de copia de público a proyecto en fases de compilación
- lo más importante: debajo de las bibliotecas secundarias ... en las fases de compilación me aseguré de que el destino de los archivos de copia se cambiara de la
Absolute path
alproducts directory
.
¡y eso fue todo!
sugerencia: para tener una idea de los archivos ofensivos que están causando que su archivo archive un archivo de almacenamiento en lugar de un ipa haga esto:
- Seleccione el archivo y haga clic en el botón Distribuir.
- Seleccione la opción ''Guardar productos fabricados''.
- Presione Siguiente y Guardar.
- Explore el directorio creado en Finder.
- El subdirectorio ''libraries'' identificará las bibliotecas que necesita para configurar Skip Install en Yes.
- en algunos casos,
usr/local/include
identificará los archivos de encabezado culpable que necesita para pasar de Public to Project o los archivos que debe cambiar de la ruta absoluta al directorio de productos. pero ese directorio (es decir, usr / local / include) varía según la estructura de directorios de su sublibrary
OK, respondiendo mi propia pregunta. Resulta que es un problema con proyectos dependientes en XCode 4. Si esto le sucede, vaya a Configuración de compilación para todos sus proyectos dependientes (por ejemplo, bibliotecas estáticas) y asegúrese de que la opción "Omitir instalación" en "Despliegue" esté configurada a SÍ.
Más detalles aquí: http://flakasoft.com/developer-tips/xcode-4-bug-solution-for-archiving-build-with-static-library/
Para resolver este problema, es necesario corregir dos cosas en el subproyecto (s):
- Como descubrió Jared, en Configuraciones de compilación, configure "Omitir instalación" en "Sí"
- En Build Fases, examine la sección Copiar encabezados. Si hay archivos de encabezado listados como Privados o Públicos, arrástrelos a la sección Proyecto.
También tuve este mismo problema "[projectname] no contiene una aplicación de paquete único o contiene múltiples productos. Seleccione otro archivo o ajuste su esquema para crear una aplicación de paquete único". después de actualizar a xcode5.
el problema era que un montón de campos en mi configuración de compilación para ''lanzamiento'' estaban en blanco. Supongo que xcode4 cambió automáticamente a la configuración de depuración.
anwyays: mi solución fue encontrar todas esas configuraciones de ''liberación'' que estaban en blanco y establecerlas en la configuración de depuración. En particular, era la configuración del archivo Info.plist.
Tuve una fase de compilación de archivos de copia que olvidé (copié algunas fuentes en ~ / Library / Fonts). Después de eliminar esta fase de compilación, funcionó bien.
Si ninguna de las respuestas anteriores soluciona el problema, recomiendo exportar el archivo al buscador y echar un vistazo a lo que está fuera del paquete .app.
Editar: consulte https://github.com/RestKit/RestKit/wiki/Xcode-4-Archiving-Issue:--''Does-not-contain-a-single-bundle ''