iphone - una - No se puede generar el archivo de la aplicación iOS en xcode
no se pudo verificar la app iphone (30)
Ve a Configuración de compilación y agrega
yourAppName / Resources / dist.plist a los derechos de firma de código
Presione cmd + B con dispositivo iOS o un dispositivo real seleccionado como Build Target
Cuando haya terminado -> desplácese a la carpeta "Productos" y haga clic con el botón secundario en yourAppName.app
Elija "Mostrar en el buscador"
Crea una carpeta con Nombre Carga útil ( "P" mayúscula )
Copie su nombre de aplicación en su carpeta de carga útil
Crea un archivo zip desde tu carpeta de carga útil
Cambie el nombre del zip a yourAppName.ipa
HECHO
Tengo un problema al generar un archivo de aplicación de iOS desde una aplicación. La aplicación 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 el Producto -> Archivar, se genera un archivo xcode genérico. Alguien puede ayudarme. Debo mencionar que ya he generado un archivo de aplicaciones de iOS de esta aplicación. Acaba de parar para generar iOS Archive por alguna razón. Muchas gracias.
A pesar de que estoy usando Xcode5 y de haberlo solucionado, estaba editando el Esquema de compilación: probar todas las sugerencias anteriores que eran aplicables no me 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 intenté archivar la versión GRATUITA, que agregué después de la versión ''normal'' de la aplicación. En mi caso, cuando seleccioné su Scheme en la barra de herramientas y elegí Edit Scheme ... Vi que la sección Build tenía dos objetivos, a saber, App y App FREE.
Desmarqué todas las columnas de la aplicación, dejando solo las columnas de la aplicación FREE marcadas, y hice clic en Aceptar. La próxima vez que elegí Producto> Archivo obtuve mi aplicación GRATIS en lugar de un Archivo genérico. :)
Además de Omitir instalación a Sí y, en caso de que haya abierto otro proyecto de lib / framwork dentro de su proyecto de aplicación, debe mover encabezados (si corresponde) de público a proyecto en la Fase de compilación / Copiar encabezados .
Además de la respuesta de Alex L.
Punto 3. Cambie ''Configuraciones de compilación'' -> ''Ruta de carpeta de encabezado público'' a ''incluir / xxx'' también funciona.
Dejando esto aquí para salvar a otros del mismo viaje.
Descubrí que necesitaba eliminar la misma fase de compilación Copy Pod Resources desde un objetivo de biblioteca estática en mi espacio de trabajo.
Después de probar casi todo:
- Limpiar, archivar
- eliminar DerivedData, Archive
- reinicie Xcode (estaba usando XCode7), Archive
- combinaciones de arriba ...
Entonces noté que mi partición de arranque tenía "poco espacio libre en el disco" ... aproximadamente 1GB o menos. Reinicié, luego obtuve alrededor de 18GB gratis.
Luego abrí Xcode y proyecto, realicé Archive ... y sorprendentemente (después de una hora de tratar de crear un archivo) finalmente obtuve un archivo no genérico.
No tengo idea si es un problema de disco libre que lo solucionó o si reinicié el macOS que lo arregló, pero funcionó para mí.
En mi caso, recibía el "Archivo Genérico" erróneo solo después de comenzar a incluir el código Swift en mi proyecto predominantemente Objective-C. Después de una gran cantidad de solución de problemas y el examen del archivo que Xcode escupía, noté que la carpeta SwiftSupport
(con los archivos DLL requeridos para el tiempo de ejecución Swift) estaba en un lugar diferente en mi archivo que desde una nueva y flamante aplicación de proyecto Swift archivo.
Encontré la configuración de compilación del Installation Directory
instalació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 el siguiente Build -> Archive funcionó como se esperaba y me proporcionó un archivo de aplicación de iOS adecuado.
TL; DR: asegúrese de que la configuración de compilación de su Installation Directory
instalación esté configurada en su valor predeterminado de /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 heredadas de compilación.
En mi caso, tenía un script personalizado que copiaba algunos archivos temporales en:
${TARGET_BUILD_DIR}/myTempDir
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 guardarlo en otro lado, se ordenaron las cosas.
En mi caso, tuve que mover tanto FMDB como 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ágicamente.
Esto puede suceder si ha agregado un marco de trabajo / biblioteca ... necesita editar el objetivo-> Configuraciones de compilación de esa biblioteca y establecer la configuración ''Omitir instalación'' a ''Sí''. Cuando vuelva a archivar, XCode debería comenzar a producir un ''Archivo de aplicación de iOS'' de nuevo en lugar de un ''archivo de xcode genérico''.
Hice lo siguiente para que funcione para mí:
- Tenía una biblioteca estática de tres20, utilicé cocoapods para incluir los archivos dentro del proyecto principal
- siguió la instalación de omisión para todos los otros sub proyectos / bibliotecas estáticas y cambió los encabezados de copia de público a proyecto como se indicó anteriormente
- lo más importante: en cada biblioteca que usa su proyecto vaya a las fases de compilación -> Copiar archivos y se aseguró de que el destino se cambie de la
Absolute path
alproducts directory
. Nota: vea la sugerencia a continuación para restringir su búsqueda y encontrar la biblioteca que causa este error.
¡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 a Project o los archivos que debe cambiar de la ruta absoluta al directorio de productos (o incluso los archivos que olvidó configurar para omitir la instalación en sí bandera). 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 que se detalla aquí. Si los encuentras aquí, entonces tienes una respuesta definitiva para la causa de tu problema.
actualizar para insinuar: para hacer la vida aún más simple ... cualquier archivo que aparezca bajo el paso 4 en la sugerencia anterior ... simplemente búscalo en la búsqueda global de xcode ... y deberás obtener resultados inmediatos para lo que quieras ... por ejemplo, este era el contenido de mi carpeta (siguiendo los pasos en la sugerencia anterior):
Así que podría decir que tiene algo que ver con las bibliotecas crypto y ssl ... buscándolas:
me hizo darme cuenta de que olvidé establecer la instalación de omisión en sí.
Intente configurar encabezados $ (PROJECT_NAME) en la ruta de la carpeta de encabezados públicos del proyecto de Framework. Debe ir a la configuración de compilación del Target de la Biblioteca y luego editar la ruta de la Carpeta de los Encabezados Públicos como Encabezados $ (PROJECT_NAME).
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á [BUILD, RUN, TEST, PROFILE XXX.APP, ANALYZE, ARCHIVE ] desde el panel BUILD, verá los objetivos de su proyecto enumerados en una lista. En el extremo derecho verá las selecciones de ARCHIVO, asegúrese de seleccionar solo un objetivo para archivar.
Tenía 2 de mis objetivos seleccionados en mi proyecto, solo revisé el objetivo que quería en el producto, ¡y funcionó!
Me encontré con este problema después de agregar una herramienta de línea de comandos de OS X al proyecto de mi aplicación iOS, y Omitir instalación se estableció en NO de forma predeterminada para el objetivo de la herramienta de línea de comandos. Dado que obviamente no puede instalar un binario OS X en un dispositivo iOS, el archivo predeterminado es un archivo Xcode genérico. Al establecer Omitir instalación en SÍ para este objetivo, se solucionó el problema.
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.
Para ser exhaustivo, estoy publicando mi solución.
Experimenté exactamente el mismo problema al intentar crear un archivo de un proyecto de 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 Frameworks, y no tenía ninguna entrada Public en la sección Copiar cabeceras de mis Fases de compilación).
En mi caso, solucionar el problema consistía 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.
Porque era porque estaba trabajando en un espacio de trabajo. El proyecto se archivó pero no se mostraría en la ventana del organizador. Cerré el espacio de trabajo y abrí el proyecto por sí mismo. El archivado se ha abierto en el organizador ... espero que sea de ayuda.
Resolví este error abriendo únicamente el proyecto de la aplicación en XCode, es decir. no abrir un espacio de trabajo que comprenda la aplicación y otros proyectos / bibliotecas / marcos.
Al tener 2 proyectos separados, un framework o una biblioteca compartida y una aplicación iOS, tuve que abrir 2 ventanas XCode diferentes, cada una abriendo directamente el archivo .xcodeproj en lugar del .xcworkspace común, con el fin de construir cada una de ellas.
Como un buen efecto colateral, XCode ya no reconstruye todos los objetivos de cada proyecto después de hacer un Limpiar , lo que da como resultado tiempos de compilación en corto.
Antecedentes: estoy creando un SDK de código abierto y una aplicación de demostración iOS. Los dos abrí en un solo espacio de trabajo. Establecer Omitir instalación en SÍ en los objetivos del SDK evitaría que alguien creara un archivo, ya que estaría vacío, por lo que esta no era una opción. Utilizar Project en lugar de encabezados públicos daría lugar a que un archivo no tenga los archivos de encabezado que deberían distribuirse, por lo que tampoco era una opción.
Si alguna de las respuestas anteriores no funciona, su problema probablemente sea con cocoaPods
. La última actualización 0.38.1
me 0.38.1
, pero luego 0.37.1
a 0.37.1
y las cosas volvieron a la normalidad. Usando Xcode 6.3.1
Edición posterior: la actualización a 0.38.2
también solucionará esto. Más información sobre qué causó este problema aquí: Cocoapods 0.38.1 no pudo crear un Archivo válido
Si está utilizando CocoaPods, WatchKit o Today Extension, hay un issue abierto en el repositorio de CocoaPods que explica cuál podría ser su problema.
La solución para mí fue eliminar la fase de Copy Pod Resources
de los límites de WatchKit Extension y Today Extension en Build Phases
. El proyecto compilado y archivado como se esperaba una vez que hice esto.
Espero que esto ayude a alguien, ¡esto me ha dejado perplejo durante todo un día!
Si exporta el archivo, ábralo y vea /urs/local/include
en Products intente esta sugerencia :
En cada pod, en
Packaging
,Private Headers Folder Path
yPublic Headers Folder Path
se establece en/usr/local/include
. Si los borro, obtengo un archivo válido.
Funcionó para mí después de actualizar mi aplicación React Native a 0.11.0
, Xcode 7
y CocoaPods 0.39.0.beta.4
.
Si ninguno de los anteriores te ayudó ... después de mucho tiempo .......
Eliminé el valor en Info.plist para la versión de paquete porque me alegré con solo Bundle Version Short 1.0. Malo. No hagas esto
* Nota: De hecho, hice esto editando 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 invalida. Mi paquete apareció como otros elementos durante el proceso de archivado y no tenía ícono, y no pude cargarlo a ningún lado.
Esto se reduce a valores inválidos en Info.plist. Si no es un archivo válido, intente descomprimir un archivo antiguo y colocar / sobrescribir el archivo actual y ver si lo soluciona al reconstruir el archivo.
Si solo tiene un proyecto único, tal vez esta solución sea útil. Este problema había ocurrido cuando duplicaba el objetivo. Como resultado, tenía dos objetivos construidos en paralelo. Esto estaba causando el problema. Se creó el archivo genérico IOS.
Para desactivar el paralelo creado vaya a
- Administrar esquemas,
- Editar esquema
- Construir,
- Eliminar el otro objetivo.
Si tiene algún archivo .xcodeproj en Proyecto> Objetivos> Fases de compilación> dependencias de destino, elimínelo de allí y luego cree su ipa. Esto funciona para mi. Aclamaciones
Puede obtener una respuesta aquí: xcode está creando un archivo xcode genérico en lugar de un archivo de aplicación de iOS.
Tengo múltiples 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í, allí está el proyecto y allí están los objetivos .
Para proyectos que no son su principal como GTL
o PODS
:
Proyectos:
Skip Install = NO
Installation Directory = /Applications
// For pods
Private Headers Folder Path = ""
Public Headers Folder Path = ""
Objetivos:
Skip Install = YES
Installation Directory = /Applications
// For pods
Private Headers Folder Path = ""
Public Headers Folder Path = ""
Para el proyecto principal (que generalmente recibe el mismo nombre que el nombre de su producto):
Proyectos:
Skip Install = NO
Installation Directory = /Applications
Objetivos:
Skip Install = NO
Installation Directory = /Applications
Verifique el objetivo de despliegue de ios en cada proyecto y objetivo para asegurarse de que todos sean iguales.
Tuve este problema En mi caso, fue causado por mantener un objetivo de la aplicación Mac como una dependencia de la aplicación de 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 construir la herramienta por separado antes de hacer una compilación de la aplicación de iOS.
Tuve este problema después de actualizar a iOS 9 y Xcode 7. La solución de Josh H funcionó para mí:
En cada pod, en Empaquetado, la ruta de la carpeta de encabezados privados y la ruta de la carpeta de encabezados públicos se establece en / usr / local / include. Si los borro, obtengo un archivo válido.
¡También hice un script de post instalación para mi Podfile para hacer esto automáticamente!
post_install do |installer_representation|
installer_representation.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings[''PUBLIC_HEADERS_FOLDER_PATH''] = [""];
config.build_settings[''PRIVATE_HEADERS_FOLDER_PATH''] = [""];
end
end
end
Solo agrégalo a la parte inferior de tu Podfile y ejecuta la pod install
Una solución más, ya que todo lo anterior no funcionó para mí ...
Cambié las User Header Search Paths
del User Header Search Paths
(supongo que las Header Search Paths
funcionarían igual de bien) a "$(BUILT_PRODUCTS_DIR)/BlocksKit"
.
Antecedentes :
En BlockKit, los desarrolladores han estructurado los encabezados en el proyecto principal de forma diferente a la estructura en la implementación. Por lo tanto, no puede hacer referencia a los encabezados del proyecto y debe hacer referencia a los encabezados copiados en el directorio de compilación.
Verificar configuración de compilación:
- Omitir la instalación es NO para el objetivo principal del proyecto
- Omitir la instalación es SÍ para los objetivos del marco (subproyectos)
- En Build Fhases para subproyectos, Copy Headers debe estar en Project, no Public (no se aplica si se está creando una biblioteca estática)
- El directorio de instalación en Despliegue es válido (/ Aplicaciones, por ejemplo)