Tengo un problema al generar un archivo de aplicación de iOS desde una aplicación. La aplicación se compila muy bien e incluso funciona en el simulador. Ahora quería hacer algunas pruebas ad hoc y no puedo generar el archivo de aplicaciones de iOS. Cuando hago clic en Producto -> Archivo, se genera un archivo genérico de xcode. Alguien puede ayudarme. Debo mencionar que ya he generado un archivo de aplicaciones iOS de esta aplicación. Se detuvo para generar iOS Archive por alguna razón. Muchas gracias.
175
xcodebuild
. La solución es especificar el destino:xcodebuild -destination generic/platform=iOS
Respuestas:
Verifique la configuración de compilación:
fuente
/usr/local/include
. Si está creando una biblioteca estática, los encabezados deben ser públicos, por lo que es más correcto si el n. ° 3 es cambiar la ruta de la carpeta de encabezados públicos a algo más sensatoinclude/$(TARGET_NAME)
. @CopperCash toma nota de esto en una respuesta a continuación.Esto puede suceder si ha agregado un marco / biblioteca ... necesita editar el Destino-> Configuración de compilación de esa biblioteca y establecer la configuración 'Omitir instalación' en 'Sí'. Cuando vuelva a archivar, XCode debería comenzar a producir un 'Archivo de aplicaciones iOS' nuevamente en lugar de un 'archivo genérico de xcode'.
fuente
Además de Saltar instalación a Sí y en caso de que haya abierto otro proyecto lib / framwork dentro de su proyecto de aplicación, debe mover los encabezados (si corresponde) de público a proyecto en la fase de compilación / Copiar encabezados .
fuente
Hice lo siguiente para que funcione para mí:
Absolute path
aproducts directory
. Nota: vea la sugerencia a continuación para limitar su búsqueda para encontrar la biblioteca que causa este error.¡y eso fue todo!
pista: para tener una idea de los archivos ofensivos que están causando que su archivo cree un archivo en lugar de una ipa, haga esto:
usr/local/include
identificará los archivos de encabezado culpables que necesita para pasar de Público a Proyecto o los archivos que tiene que cambiar de la ruta absoluta al directorio de productos (o incluso los archivos que olvidó configurar la instalación de omisión para marcar sí). pero ese directorio (es decir, usr / local / include) varía según la estructura de directorios de su sublibrary. En muchos casos ... verá todos los archivos enumerados en Copiar archivos en el paso 3 mencionado anteriormente. Si los encuentra aquí, entonces tiene una respuesta definitiva para la causa de su problema.actualizar a pista: para hacer la vida aún más simple ... cualquier archivo que aparezca en el paso 4 en la pista anterior ... simplemente búsquelo en la búsqueda global de xcode ... y debería obtener resultados inmediatos para lo que desea ... por ejemplo, este era el contenido de mi carpeta (siguiendo los pasos en la pista anterior):
Entonces podría decir que tiene algo que ver con las bibliotecas crypto y ssl ... buscándolas:
me hizo darme cuenta de que olvidé configurar skip install en yes.
fuente
./usr/local/include
.Si exporta el archivo, ábralo y vea
/urs/local/include
en Productos, pruebe esta sugerencia :Trabajó para mí después de actualizar mi aplicación React Native a
0.11.0
, Xcode7
y CocoaPods0.39.0.beta.4
.fuente
Si está utilizando CocoaPods, así como WatchKit o Today Extension, hay un problema abierto en el repositorio de CocoaPods que explica cuál podría ser su problema.
La solución para mí fue eliminar la
Copy Pod Resources
fase de los objetivos de la extensión WatchKit y Today Extension enBuild Phases
. El proyecto se compiló y archivó como se esperaba una vez que hice esto.Espero que esto ayude a alguien, ¡esto me dejó perplejo durante todo un día!
fuente
Si alguna de las respuestas anteriores no funciona, su problema probablemente sea con
cocoaPods
. La última actualización me0.38.1
estropeó las cosas, pero luego bajé0.37.1
y las cosas volvieron a la normalidad. UtilizandoXcode 6.3.1
Edición posterior: actualizar a
0.38.2
también solucionará esto. Más información sobre la causa de este problema aquí: Cocoapods 0.38.1 no pudo crear un archivo válidofuente
0.38.2
y aún tengo problemas. ¿Estás en Xcode 7?/Library/Frameworks
. Creo que puede tener algo que ver con que las vainas de cacao de Google no se construyan como un marco dinámico. Suena similar a github.com/CocoaPods/CocoaPods/issues/3889Aunque estoy usando Xcode5 y lo que lo resolvió para mí fue editar el Esquema de compilación, probar todas las sugerencias anteriores que eran aplicables no ayudó en mi caso.
Tenía dos objetivos, por ejemplo, "Aplicación" y "Aplicación GRATUITA". Mis problemas con el archivo genérico ocurrieron cuando intentaba archivar la versión GRATUITA, que agregué después de la versión 'normal' de la aplicación. En mi caso, cuando seleccioné su Esquema en la barra de herramientas y elegí Editar esquema ... Vi que la sección Construir tenía dos objetivos, a saber, Aplicación y Aplicación GRATUITA.
Desmarqué todas las columnas para la aplicación, dejando solo las columnas de la aplicación GRATUITA marcadas, e hice clic en Aceptar. La próxima vez que elegí Producto> Archivo, obtuve mi aplicación GRATIS en lugar de un archivo genérico. :)
fuente
Si tiene un solo proyecto, tal vez esta solución sería útil. Este problema había ocurrido cuando dupliqué el objetivo. Como resultado, tuve dos objetivos construidos en paralelo. Esto estaba causando el problema. Se creó el archivo genérico IOS.
Para desactivar el paralelo construido, vaya a
fuente
Tuve este problema después de actualizar a iOS 9 y Xcode 7. La solución de Josh H funcionó para mí:
¡También hice un script de instalación posterior para mi Podfile para hacer esto automáticamente!
Solo agrégalo al final de tu Podfile y ejecuta
pod install
fuente
Tengo varios proyectos en mi espacio de trabajo (GTL, Pods y mi proyecto principal) y esto es lo que funcionó para mí:
Seleccione el Proyecto, habrá 2 tipos allí, está el Proyecto y están los Objetivos .
Para proyectos que no son sus principales me gusta
GTL
oPODS
:Proyectos:
Objetivos:
Para el proyecto principal (que generalmente se denomina igual que el nombre de su producto):
Proyectos:
Objetivos:
Verifique el objetivo de implementación de ios en cada proyecto y objetivo para asegurarse de que todos sean iguales.
fuente
Tuve este problema En mi caso, fue causado por mantener el objetivo de una aplicación Mac como una dependencia de la aplicación iOS.
La razón por la que se configuró de esta manera fue que la aplicación Mac era una herramienta utilizada para generar algunos datos para la aplicación iOS, que luego se incluyó en el paquete.
Tuve que eliminar esa dependencia y compilar la herramienta por separado antes de hacer una compilación de la aplicación iOS en sí.
fuente
En mi caso, recibí el "Archivo Genérico" erróneo solo después de que comencé a incluir el código Swift en mi proyecto predominantemente Objective-C. Después de un montón de solución de problemas y examen del archivo que Xcode estaba escupiendo, noté que el
SwiftSupport
carpeta (con las dylibs requeridas para el tiempo de ejecución de Swift) estaba en un lugar diferente en mi archivo que en un archivo de aplicación de proyecto Swift completamente nuevo. .Encontré la
Installation Directory
configuración de compilación y noté que estaba configurada en una ruta personalizada en mi proyecto. Simplemente lo eliminé (configurándolo en su valor genérico de/Applications
) y la siguiente compilación -> Archivo funcionó como se esperaba y me dio un archivo de aplicación de iOS adecuado.TL; DR: asegúrese de que su
Installation Directory
configuración de compilación esté establecida en su valor predeterminado/Applications
al incluir el código Swift en su aplicación, especialmente si está comenzando con un archivo de proyecto anterior que puede tener algunas configuraciones de compilación heredadas inesperadas.fuente
Dejando esto aquí para salvar a otros del mismo viaje.
Descubrí que también necesitaba eliminar la misma fase de compilación de Recursos de pod de copia de un objetivo de biblioteca estática en mi espacio de trabajo.
fuente
Además de la respuesta de Alex L.
Punto 3. Cambiar 'Configuración de compilación' -> 'Ruta de carpeta de encabezado público' a 'incluir / xxx' también funciona.
fuente
Si nada de lo anterior te ayudó ... después de mucho tiempo .......
Eliminé el valor en Info.plist para Bundle Version porque estaba bastante contento con solo Bundle Version Short 1.0.Malo. No hagas esto.
* Tenga en cuenta que en realidad lo hice editándolo en la interfaz de usuario de la derecha sin darme cuenta de que pondría una clave vacía en el archivo Info.plist. Creo que eso lo hace inválido. Mi paquete apareció como otros elementos durante el archivo y no tenía icono, y no pude subirlo a ningún lado.
Esto se reduce a valores no válidos en la lista de información. Si no es un archivo válido, intente descomprimir un archivo antiguo y colocar / sobrescribir el actual y ver si lo arregla al reconstruir el archivo.
fuente
Vaya a Configuración de compilación y agregue
yourAppName / Resources / dist.plist a los derechos de firma de código
Presione cmd + B con un dispositivo iOS o un dispositivo real seleccionado como Build Target
Cuando termine -> desplácese a la carpeta "Productos" y haga clic derecho en yourAppName.app
Elija "Mostrar en el buscador"
Cree una carpeta con Name Payload ( mayúscula "P" )
Copie yourAppName en su carpeta de carga útil
Crea un zip desde tu Carpeta de Carga
Cambie el nombre del zip a yourAppName.ipa
HECHO
fuente
Después de probar casi todo:
Entonces me di cuenta de que mi partición de arranque era 'baja en espacio libre en disco' ... aproximadamente 1 GB más o menos. Reinicié, luego obtuve alrededor de 18GB gratis.
Luego abrí Xcode y proyecté, realicé Archive ... y sorprendentemente (después de una hora de intentar construir un Archive) finalmente obtuve un Archive no genérico.
No tengo idea si es un problema de disco libre que lo solucionó o un reinicio de macOS que lo solucionó, pero funcionó para mí.
fuente
Si tiene archivos .xcodeproj en Proyecto> Objetivos> Fases de compilación> dependencias de destino, elimínelo de allí y luego cree su ipa. Esto funciona para mi. Salud
Puede obtener la respuesta aquí: xcode está creando un archivo genérico de xcode en lugar de iOS App Archive
fuente
En mi caso, tuve que mover FMDB y BlocksKit a bibliotecas estáticas. Anteriormente se construyeron como subproyectos. Recuerde que puede usar lipo para crear bibliotecas universales. Al construir los productos finales, el código del simulador se eliminará automáticamente.
fuente
Otra posible razón para esto es tener referencias en "Dependencias de destino" a proyectos para una plataforma diferente. En mi caso particular, estaba trabajando en un proyecto que comparte código para OSX e iOS. En uno de los objetivos de iOS, accidentalmente agregué un objetivo OSX como dependencia.
fuente
Para ser minucioso, estoy publicando mi solución.
Experimenté exactamente el mismo problema al intentar construir un archivo de un proyecto iOS en Xcode 5.1.1 (5B1008). Ninguna de las sugerencias anteriores solucionó el problema, y la mayoría de ellas eran irrelevantes (no había agregado ningún Marco, y no tenía ninguna entrada pública en la sección Copiar encabezados de mis fases de compilación).
En mi caso, solucionar el problema consistió en simplemente cerrar mi proyecto, eliminar los archivos que había hecho previamente, ir a Preferencias> Cuentas, eliminar mi cuenta de desarrollador, salir de Xcode, reiniciar, volver a agregar mi cuenta de desarrollador, iniciar el proceso de Archivo de nuevo. Esto solucionó mi problema de inmediato.
fuente
Una solución más, ya que todo lo anterior no funcionó para mí ...
Cambié el
User Header Search Paths
(supongoHeader Search Paths
que funcionaría con la misma elegancia) a"$(BUILT_PRODUCTS_DIR)/BlocksKit"
.Antecedentes :
En BlockKit, los desarrolladores han estructurado los encabezados en el proyecto principal de manera diferente a la estructura en la implementación. Por lo tanto, no puede hacer referencia a los encabezados en el proyecto y debe hacer referencia a los encabezados copiados en el directorio de compilación.
fuente
La forma en que esto funcionó para mí en (Xcode 5) tenía 2 objetivos y cuando edité el esquema, en el panel izquierdo del editor de esquemas, verá [CREAR, EJECUTAR, PRUEBA, PERFIL XXX.APP, ANALIZAR, ARCHIVAR ] desde el panel BUILD, verá los objetivos de su proyecto en una lista. En el extremo derecho verá las selecciones ARCHIVO, asegúrese de que solo se haya seleccionado un objetivo para archivar.
Tenía 2 de mis objetivos seleccionados en mi proyecto, verifiqué solo el objetivo que quería en el producto, ¡y funcionó!
fuente
Resolví este error abriendo únicamente el proyecto de la aplicación en XCode, es decir. no abrir un espacio de trabajo comprende la aplicación y otros proyectos / bibliotecas / marcos.
Teniendo 2 proyectos separados, un marco o biblioteca compartida y una aplicación para iOS, tuve que abrir 2 ventanas XCode diferentes, cada una abriendo directamente el archivo .xcodeproj en lugar del .xcworkspace común , para construir correctamente cada una.
Como un buen efecto secundario, XCode ya no reconstruye todos los objetivos de cada proyecto después de hacer una limpieza , lo que resulta en tiempos de construcción cortos.
Antecedentes: estoy creando un SDK de código abierto y una aplicación de demostración de iOS. Los había abierto en un solo espacio de trabajo. Establecer Skip install en YES en los objetivos del SDK evitaría que cualquiera creara un archivo, ya que estaría vacío, por lo que esta no era una opción. El uso de Project en lugar de encabezados públicos llevaría a un archivo que falta los archivos de encabezado que deberían distribuirse, por lo que tampoco era una opción.
fuente
Porque era porque estaba trabajando en un espacio de trabajo. El proyecto se archivó pero no se mostrará en la ventana del organizador. Cerré el espacio de trabajo y abrí el proyecto solo. El archivo se ha abierto en el organizador ... espero que sea de ayuda.
fuente
En mi caso, tenía un script personalizado que copiaba algunos archivos temporales en:
Eso significaba que, después de investigar el archivo para inspeccionar su contenido, encontré justo al lado del archivo .app una carpeta myTempDir. Una vez que modifiqué el script para guardar en otro lugar, las cosas se ordenaron.
fuente
Intente configurar encabezados $ (PROJECT_NAME) en la ruta de la carpeta de encabezados públicos del proyecto Framework. Debe ir a la configuración de compilación del Destino de la biblioteca y luego editar la ruta de la carpeta de encabezados públicos como encabezados $ (PROJECT_NAME).
fuente
Si usa Xcode 7 con cocoapods v.0.38.2 . Intenta eliminarlo
copy pod resources
de tu objetivo de extensión actual.fuente
Encontré este problema después de agregar una herramienta de línea de comandos OS X al proyecto de mi aplicación iOS, y la opción Omitir instalación se configuró en NO de forma predeterminada para el objetivo de la herramienta de línea de comandos. Como obviamente no puede instalar un binario OS X en un dispositivo iOS, el archivo está predeterminado en un archivo Xcode genérico. Establecer Saltar instalación a SÍ para este objetivo solucionó el problema.
fuente