iOS 8: no se puede instalar la aplicación empresarial

Nuestra empresa tiene una aplicación que se puede descargar a través de un sitio web utilizando Enterprise Distribution.

Sitio de distribución empresarial

En iOS 8 Beta 5, al tocar el enlace de descarga aparece la ventana emergente esperada “(sitio web) desea instalar (nombre de la aplicación)”. Al tocar “instalar” en ese cuadro de diálogo, la aplicación se bloquea “Esperando …”

Aplicación atascada esperando

Hasta que finalmente indique: “No se pudo descargar la aplicación (nombre de la aplicación) no se pudo descargar en este momento”.

Imposible descargar la aplicación

La instalación funciona como se esperaba con iOS 7.

Se ejecuta la aplicación de Xcode en iOS 8.

¿Cómo apoyamos Enterprise Distribution iOS 8?

Tal vez un cambio debe hacerse en el archivo Manifiesto? Cuando intenté construir la aplicación en Xcode 6 Beta 7, el proceso de Enterprise Archival no me pidió que hiciera un archivo de manifiesto …

Al mirar a través de la consola del teléfono cuando intentaba instalar una de mis aplicaciones, descubrí:

Sep 9 12:16:56 iPhone misagent[94] : attempt to install invalid profile: 0xe8008011 Sep 9 12:16:56 iPhone installd[40] : 0x100484000 -[MIInstallableBundle _installEmbeddedProfileInBundle:]: Could not install embedded profile: 0xe8008011 (Expired) 

Razones que desconocía para mí, la manzana invalidó la mitad de mis perfiles y no me alertó. Después de entrar en developer.apple.com, busque los perfiles no válidos:

Pulse Edit -> Generate -> Download Reconstruir la aplicación con el nuevo perfil.

Sin embargo, la mala noticia es que al menos una de mis aplicaciones no se puede instalar. Mirar a través de la consola no me da nada. Estoy convencido de que se trata de un error de apple, así que he archivado un radar: 17622725

Espero que su problema sea un problema de perfil, de lo contrario tendremos que esperar hasta esta noche 1800GMT para ver si Apple lo ha solucionado.

EDITAR

Con iOS8 GM – Acabo de Waiting... – Te mantendré informado con el progreso del informe de errores.

EDITAR

Después de la resolución de problemas, se han encontrado algunas soluciones:

Fix 1

A partir de iOS8, si las imágenes a las que se está vinculando en el listado de manifiesto no existen, Apple no instalará la aplicación en el teléfono. El manifiesto es el archivo al que se vincula en la página de descarga: itms-services://?action=download-manifest&url={url}

Asegúrese de que existan tanto full-size-image como la de display-image :

  kind full-size-image needs-shine  url https://{path_to_real_image}   kind display-image needs-shine  url https://{path_to_real_image}  

Fix 2

Las aplicaciones empresariales no se instalarán si ya existían anteriormente en iOS7 debido a un error con iOS8. Un error aparece en la consola:

 Ignore manifest download, already have bundleID: {bundle_id} 

Esto puede solucionarse cambiando temporalmente el bundleID en el archivo de manifiesto, pero Apple sabe que marcó el informe de error como duplicado. Después de las pruebas internas, usted también soluciona el problema descansando el diseño de la pantalla de inicio General -> Reset -> Reset Home Screen Layout

Fix 3

Si ve la aplicación entrar en la etapa de installing... en lugar de loading... casi seguro que el problema es que el embedded provisioning profile ha expirado, para arreglar la descarga deberá volver a archivar su aplicación con una nueva y actualizada perfil de aprovisionamiento.

Fix 4

Si ve la aplicación llegar a la etapa de installing... y su provisioning profile es válido: descargue la aplicación mientras está conectada a su consola. (Xcode 6> Ventana> Dispositivos> Botón inferior izquierdo [v]), probablemente encontrará que la instalación ha fallado con Verification Stage Failed Un poco más abajo aparecerá el mensaje de error. En mi caso (Entitlements found that are not permitted by provisioning profile) : para este error, vaya a developer.apple.com y actualice su Identificador de aplicación para incluir el servicio correcto. Para mí, los App Groups deben estar habilitados. Luego regenere su provisioning profile

Hoy tengo el mismo problema: no pude instalar una de mis aplicaciones Enterprise en IOs8 (pero en IOs7). Después de muchas horas de búsqueda, finalmente leí este mensaje en la consola del dispositivo:

 : LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.ecaste.Crew-Desk 

Después de un largo tiempo de búsqueda, finalmente leí esta publicación: http://support.hockeyapp.net/discussions/problems/26683-not-able-to-download-apps-ios8-beta-5-autoupdate-manually-etc

Y al final acabo de cambiar el nombre del plist y el enlace para descargar el ipa (probablemente el segundo no es necesario), y finalmente la aplicación se instala.

Finalmente parece que fue un problema de caché en IOs8 que considera que la aplicación ya estaba instalada (y ese no era el caso, la desinstalé previamente).

Espero que esto ayude

El mismo error aquí, he intentado cambiar bundle-id, bundle-version, plist … pero el error permanece.

Sé que esto es un poco complicado, pero esto es lo único que funciona para mí:

http://support.hockeyapp.net/discussions/problems/30194-ios8-workaround-can-break-today-extension?full_site=1#comment_35141099

  1. Conecte el dispositivo a una Mac o PC
  2. Crea una copia de seguridad en iTunes

  3. Instalar iExplorer: http://www.macroplant.com/iexplorer/

  4. Inicie iExplorer, luego seleccione el modo de demostración

  5. En la barra lateral izquierda, selecciona Medios, luego abre la carpeta Descargas y elimina todos los archivos en ella

  6. Reiniciar el dispositivo

  7. Abra la página de descarga e instale la última versión de su aplicación

De hecho, omito los primeros dos pasos y funciona perfecto 🙂

espero que esto ayude

Establecer destino de despliegue más bajo en

Proyecto> Configuración de comstackción> Objetivo de implementación de iOS

Objetivos> Configuración de comstackción> Objetivo de implementación de iOS

Acabo de tener este problema en este momento y fue causado por el ploteo de mainfest (keys: full-size-image + display-image) están apuntando a ubicaciones de imágenes url que no existen.

Parece que iOS6 / iOS7 puede manejar si las imágenes no existen, pero iOS8 es más restrictivo al respecto.

En base a los comentarios anteriores sobre el mensaje “ignorar la descarga del manifiesto”, intentamos cambiar el ID del paquete (es decir, com.companyName.AppName) en .plist para que tenga un nombre único, para forzar que iOS 8 lo descargue / instale de todos modos. Después de que se instala, reemplaza correctamente la copia existente.

Creo que hay 2 problemas pasando aquí. Si el .plist en el sitio web https que apunta al certificado. Enterprise firmado con el archivo .ipa tiene un identificador de paquete que coincida con una aplicación que ya está instalada, no se sobrescribirá. La versión del paquete es diferente en todos nuestros archivos .plist, por lo que debe instalarlo de todos modos. iOS 7 no parece tener este problema. Planeamos solucionar este problema descomponiendo el identificador de paquete en el plist, por lo que siempre es exclusivo de la comstackción.

El segundo problema es que cuando está instalando correctamente la aplicación, no cambia a la pantalla de inicio ni indica que está haciendo absolutamente nada. En iOS 7, después de seleccionar el botón “Instalar” en el indicador, cambiaría a la pantalla de Inicio donde el icono estaría oscuro, y un indicador de progreso mostraría el progreso de la descarga. Entonces la aplicación tendría un punto azul al lado que indica que era nuevo. Con iOS 8, no cambia a la pantalla de inicio, por lo que parece que no está funcionando. Puede ir manualmente a la pantalla de inicio y debería ver un icono oscuro con un indicador de progreso (ahora en una nueva ubicación, porque no sabe que reemplazará una aplicación existente). Después de que se descarga / instala correctamente, no coloca el punto azul en la aplicación reemplazada.

Espero que esto ayude.

Esto me causó un gran dolor. Necesitaba instalar una nueva aplicación OTA solo en teléfonos de empleados fuera de una solución MDM. Parecía que intenté todas las soluciones posibles que pude encontrar en Internet y nada funcionó. Lo más cerca que pude llegar fue que la aplicación llegue a la etapa de “carga”. Mi solución ha tomado una semana de trabajo, probando diferentes cosas. No estoy seguro de qué funcionó en qué orden y cuál habría funcionado de todos modos, pero esto es lo que hice:

En mi caso, anteriormente había creado esta aplicación con un perfil de aprovisionamiento de una cuenta de desarrollador (a diferencia de una Enterprise). En Xcode, cambié el identificador de paquete para darle un nuevo nombre, por ejemplo, originalmente era com.mydomain.myapp y se convirtió en com.mydomain.mysuperapp.

La firma segura del código en la aplicación era válida e incluía el certificado de distribución para la cuenta Enterprise

Había usado el perfil de aprovisionamiento incorrecto (uno sin identidades asociadas) así que, como elegí ‘automático’, lo construí bien pero nunca lo iba a instalar. Entonces, cambié la firma de código para Release a mi perfil de distribución (en lugar de perfil de desarrollo)

Se aseguró de que la aplicación se configurara con un objective de implementación lo suficientemente bajo para los dispositivos que lo descargarían

Archivado el archivo y exportado para la implementación de Enterprise

Manifest debe contener 57×57 png y 512×512 png de lo contrario la instalación no pasa la etapa de ‘espera’

Creé un archivo index.html que se veía así:

    Install Learning Chunks App from Dropbox   

Había usado una muestra plist que encontré en línea e incluía algunas configuraciones opcionales. Cuando los dejé en esto, la descarga no funcionó. Los saqué. Mi archivo plist manifiesto se llamaba: MyApp.plist y se veía así:

    items   assets   kind software-package url https://dl.dropboxusercontent.com/s/r1bljbkcows7sje/mysuperapp.ipa   kind display-image needs-shine  url  https://dl.dropboxusercontent.com/s/ujk9ipcv2naltut/logo57.png   kind full-size-image needs-shine  url https://dl.dropboxusercontent.com/s/gpebomok83mp9d5/logo512.png   metadata  bundle-identifier com.mydomain.mysuperapp bundle-version 1.0 kind software title My Super App subtitle My Super App      

Cargué MyApp.plist, index.html, logo57.png, logo512.png y MyApp.ipa en DropBox. Compartí el index.html con aquellos que necesitan descargar la aplicación.

El usuario puede hacer clic en el enlace compartido en el correo electrónico y la aplicación debe instalarse.

EDITAR: El problema a continuación es una pista falsa. Como Dylan Hand mencionó anteriormente, el problema para mí fue que tenía enlaces de imagen rotos en el archivo de manifiesto. Aparentemente esto no importó para iOS7, pero ios7 no terminará la instalación si esto es cierto. Cuando eliminé esas referencias, funcionó perfectamente.


Tengo el mismo conjunto de síntomas que OP (es decir, el mensaje “No se puede descargar la aplicación”, pero solo en iOS 8). Cuando bash validar (es decir, Organizador -> Validar), recibo el siguiente mensaje.

Captura de pantalla del resultado de la validación

Esto me llevó a esta publicación: https://stackoverflow.com/a/25757196/751136

Afirma que volver a generar sus perfiles de aprovisionamiento debería dar como resultado un nuevo derecho llamado beta-reports-active . Cuando trato de hacer esto en mi cuenta empresarial, los nuevos perfiles NO tienen la nueva titularidad. Sin embargo, cuando regenero los perfiles de aprovisionamiento en otra cuenta no empresarial, los nuevos perfiles SI tienen ese campo.

Si construye sus aplicaciones de iOS con un script de comstackción y estaba usando PackageApplication con el indicador –sign, eso puede estar causando problemas. El indicador –sign ya no funciona cuando se construye en 10.10 y al eliminarlo se vuelven a instalar todas nuestras aplicaciones de iOS.

ver: https://devforums.apple.com/thread/251624?tstart=0

Este problema me volvía loco. Solo esto ayudó a Enterprise Distribution: realizar todas las configuraciones de comstackción necesarias y hacer clic en “Archivar”. Realice el proceso de distribución empresarial. Aparecerá la ventana Organizador. En la máquina Mac, busque el archivo .xcacrchive seleccionando KRelease y seleccionando “Mostrar en el buscador”.

El usuario se dirige a la carpeta donde se encuentra el archivo .xcarchive. Haga clic derecho en el archivo .xcarchive y seleccione la opción “Mostrar contenido del paquete”.

En la ventana del buscador abierto, vaya a Productos / Aplicaciones Seleccione y copie el archivo .app

Cree una nueva carpeta en algún lugar de su disco con el nombre “Carga útil” Nota: El nombre de la carpeta distingue entre mayúsculas y minúsculas. Pegue el archivo .app copiado en la carpeta “Payload”. Comprima la carpeta Payload para obtener el archivo Payload.zip Cambie el nombre del archivo Payload.zip a .ipa y agréguelo con su .plist ¡¡Listo !!! el archivo .ipa está listo para instalarse en los dispositivos registrados en el perfil de aprovisionamiento utilizado en la generación .xcarchive.

He resuelto este problema.

  1. Como Apple ha cambiado los perfiles de aprovisionamiento, RENOVAR los perfiles de aprovisionamiento (Archivo 1) y copiarlos en la “Carga útil /”.
  2. Asegúrese de que haya un Entitlements.plist (Archivo 2) en “Payload /”, y este archivo plist DEBE ser TEXT PLAIN creado por un editor de texto.
  3. Asegúrese de que hay un Info.plist (Archivo 3) en “Carga útil /”, y esto es creado por XCode;
  4. Copie Entitlements.plist (Archivo 4) en cualquier otro lugar excepto en “Payload /”.
  5. Asegúrese de que “Identificador de paquete” en el Archivo 1-4 sea el mismo.
  6. Utilice este Entitlements.plist (Archivo 4) para volver a firmar el archivo IPA.

Puedes renunciar de esta manera

 codesign -fs "iPhone Distribution: Your Company Name" --entitlements=/Users/SenTR/Downloads/codesign/Entitlements.plist /Users/SenTR/Downloads/codesign/Payload/Your_Project_name.app 

Muestra de Entitlements.plist

     application-identifier PREFIX.yourappBundleID aps-environment production get-task-allow  keychain-access-groups  PREFIX.yourappBundleID    

Si conoces chino, será útil.

http://hennry.com/2015/03/fail-to-resign-ipa-since-ios8/

Estas respuestas son cosas válidas para verificar, pero en caso de que alguien más las haya probado como lo hice y SIGUE teniendo problemas, asegúrese de que su aplicación contenga la configuración plist adecuada que permita que el archivo exportado se comprima correctamente . Esto es lo que nos mordió, incluso después de seguir todos los pasos anteriores. También debe tenerse en cuenta que la respuesta que se refiere a garantizar que el sitio web contenga enlaces de imagen válidos no parece afectar nada, al menos para nosotros que usamos XCode 6.3 para exportar archivos. Funcionó / ​​no funcionó independientemente de que esos enlaces fueran correctos. Obviamente, es una buena idea tener esa información correcta. Otra nota interesante es que si exportamos utilizando XCode 5, los ipa’s SIEMPRE estaban en el formato correcto (ver el artículo SO vinculado anteriormente); parece que XCode 6+ ahora es exigente al respecto.

Mi problema fue corregido eliminando todos los outout construidos, luego reconstruyéndolos por completo.

Otra posible fuente de este problema de instalación es una falta de coincidencia de mayúsculas y minúsculas entre el proyecto y el perfil de aprovisionamiento (especialmente con construcciones automatizadas u otras comstackciones de línea de comandos). Los ID de paquete distinguen entre mayúsculas y minúsculas. Por ejemplo, si el identificador del paquete de aplicaciones en el perfil de aprovisionamiento es com.example.MyApp y la configuración del proyecto y / o Info.plist utiliza com.Example.Myapp , Xcode 7.1 fallará con un error de firma de código o recurrirá a un aprovisionamiento genérico perfil (uno con * id del paquete, que podría ser un problema) pero el comando xcodebuild tendrá éxito. Jenkins también cargará la comstackción erróneamente firmada a Hockeyapp, por ejemplo. La comstackción se descargará a los dispositivos del cliente, pero no se instalará debido a la falta de coincidencia del caso.

Por lo tanto,

Fix 0

Verifique que el identificador del paquete de aplicaciones esté configurado de la misma manera tanto en el proyecto como en el portal de desarrolladores de Apple.

La forma más sencilla de evitar este problema en particular es usar siempre caracteres en minúsculas en los identificadores de paquetes. Copiar el ID del paquete desde el portal del desarrollador de Apple y pegarlo en la configuración de comstackción del proyecto ( PRODUCT_BUNDLE_IDENTIFIER ) también ayuda, por supuesto.

A pesar de que tuve el problema con una cuenta empresarial, de hecho podría no ser específico para este tipo de distribución.

Corregir 0′

Asegúrese de consultar la nota técnica de Apple llamada Solución de problemas de instalación para iOS .

Mi problema era que tenía un espacio tanto en mi nombre de archivo ipa, y la referencia a ese ipa en mi plist. La eliminación del espacio en ambos permitió la instalación

    Intereting Posts