Problema de Xcode 6 beta 2 al exportar .ipa: "Su cuenta ya tiene un certificado de distribución de iOS válido"


193

Tengo problemas para exportar una aplicación para la distribución ad hoc en Xcode 6 beta 2:

Error al localizar o generar activos de firma coincidentes

Al exportar mi proyecto para el desarrollo ad hoc en Xcode 6, recibo esta alerta. Intenté exportarlo en Xcode 5 y no tuve ningún problema para guardar el .ipa. ¿Alguien está experimentando este problema también?


2
@ christopher.ryan.cruz Tengo el mismo problema. Todavía puedo exportar con xcode5 en mi Mac, pero obtengo el mismo mensaje de error al intentar con el nuevo xcode6. ¿Ya te diste cuenta de esto?
Gal

1
¿Alguna suerte resolviendo este @Gal?
simonthumper

1
@ christopher.ryan.cruz esa es la solución. Xcode dice "No hay un certificado de distribución válido". Volver a crearlo o volverlo a descargar debería solucionar el problema.
Oxcug

8
Acabo de tener este problema con la versión GM de XCode6. : - {
Kendall Helmstetter Gelner

44
Tengo este problema incluso con el lanzamiento oficial de xCode 6. Intente revocar muchas veces, elimine del llavero, cierre sesión y vuelva a iniciar sesión en xcode, pero nada de eso me da un resultado positivo. ¿alguna ayuda?
Steven

Respuestas:


52

Esto es lo que funcionó para mí.

  1. En mi máquina mantuve Xcode 5 y Xcode 6 beta.

  2. Desde Xcode 6 beta, Archive el proyecto. Cerrar Xcode 6.

  3. Abra Xcode 5, vaya a Organizador y exporte como compilación Ad Hoc con el perfil de aprovisionamiento adecuado.

¡Eso es!


9
Estoy haciendo que esto suceda en el GM. Esta no será una solución válida por mucho tiempo ya que Xcode 6 e iOS8 se lanzarán esta semana.
bergy

20
En Xcode 6.0.1 el problema se ha ido. Apple ha cambiado la forma de distribución Ad Hoc para desarrolladores. Ahora no puede realizar compilaciones de distribución ad hoc utilizando el Certificado de desarrollo. Necesita un certificado de distribución con perfil de aprovisionamiento "Ad Hoc" (no perfil de aprovisionamiento de desarrollo) para realizar compilaciones ad hoc. Es una verdadera molestia y ya no puede usar una cuenta de desarrollador de Apple en múltiples Mac para archivar construcciones TF (TestFlight). ¡Parece que cada desarrollador debería pagar $ 99 / año individualmente! TestFlight de Apple parece prometedor, pero el equipo de revisión de aplicaciones revisará las compilaciones beta. :(
Adnan

3
Más tarde, después de revocar y regenerar todos los certificados y el perfil de aprovisionamiento para la cuenta de desarrollador en cuestión, el problema finalmente se resolvió.
Graham Dawson

1
En Xcode 6.1 el problema ya no existe. Pero si desea hacer una compilación Ad Hoc para la distribución TestFlight (testflight.com), debe usar la Disposición de distribución ad hoc. La disposición de desarrollo ya no le permitirá archivar para la distribución ad hoc. No es un buen enfoque de Apple.
Adnan

Todavía tengo este problema en Xcode 6.1 y Xcode 5.1.1 ahora muestra un triángulo de advertencia amarillo en todos mis perfiles cuando intento exportar. Esto no sucedió antes de comenzar a construir con Xcode 6.1.
Greg

66

Tuve el mismo problema hace dos días. Resulta que el problema era:

  1. Tengo mi propio certificado de distribución de desarrollador con una clave privada adecuada
  2. Tengo un certificado de distribución de desarrollador empresarial de mi cliente sin una clave privada
  3. Intento hacer un paquete de distribución empresarial para mi cliente
  4. Xcode me arroja un error vago: su cuenta ya tiene un certificado de distribución de iOS válido

La solución es: obtener una clave privada para la cuenta empresarial de mi cliente. Hay 2 opciones posibles:

  1. Solicite al cliente las credenciales para acceder a su cuenta de desarrollador empresarial en el sitio web de Apple. Revocar certificado antiguo y volver a crearlo. Creará la clave privada en el proceso. CUIDADO : revocar un certificado de distribución empresarial invalida todas las aplicaciones que se firmaron e implementaron con ese certificado ( información oficial ).
  2. Pídale a su cliente que exporte su clave privada de su aplicación Keychain Access como un archivo * .p12 y se la envíe con una contraseña. No puede descargar la clave privada existente del sitio web de Apple. La única forma de obtenerlo es preguntarle a su cliente. Lo hice y pude finalmente hacer el paquete.

Cómo averiguar si tiene una clave privada para un certificado: Abra la aplicación Acceso a llaveros. Elige certificados. Encuentra tu certificado. Si ve un pequeño triángulo gris en el lado izquierdo del certificado, ábralo y verá su clave privada. Sin triángulo = sin clave privada.

Cómo encontrar si tiene una clave privada para el certificado


1
Hoy tuve este error, totalmente perplejo hasta que leí tu excelente respuesta. Muchas gracias! +1
Dal

2
Qué respuesta fantástica a un problema completamente impenetrable.
shmim

1
Excelente. Gracias.
Wade Anderson

@AlexanderVasenin Intenté esto pero todavía existe el mismo problema. ¿Alguna solución vino para esto?
Zalak Patel

49

Tuve el mismo problema, tuve que usar la herramienta de línea de comando "xcodebuild" como solución alternativa, con solo Xcode 6 instalado (no tuve que reinstalar Xcode 5).

http://www.thecave.com/2014/09/16/using-xcodebuild-to-export-a-ipa-from-an-archive/

Ejemplo:

xcodebuild -exportArchive -archivePath $projectname.xcarchive -exportPath $projectname -exportFormat ipa -exportProvisioningProfile "Provisioning Profile Name"

2
Muchas gracias! Eso funcionó y se envió una compilación ad hoc.
JocelynH

1
Pude producir un * .ipa de esta manera, pero no puedo instalarlo (la aplicación simplemente se cuelga en 'Instalando ...'). El registro del dispositivo en Xcode muestra un error de firma de código.
Alexander Vasenin

¿En qué ruta de carpeta podemos escribir este código para crear ipa?
Esha

1
Esta fue la única solución que funcionó para mí después de intentar y no eliminar y revocar certificados, claves y perfiles localmente y en el portal del desarrollador para Xcode 6.1 / iOS 8.1
David Wadge

1
Encontré una solución similar en excelentes pasos descriptivos, realmente muy útil para principiantes datacalculation.blogspot.in/2014/10/…
Prueba de iOS

28

En mi caso, lo que resolvió el problema fue eliminar todos los certificados de distribución de mi cuenta de desarrollador de Apple. Luego, Xcode logró crear certificados de desarrollo y distribución nuevamente, y eso funcionó.


1
Lo que también significa que debe volver a hacer todos sus perfiles de distribución ad-hoc.
Kendall Helmstetter Gelner el

1
@Kendall, no volví a hacer todos mis perfiles de distribución ad-hoc. Simplemente borrando los certificados del llavero y del portal de desarrolladores de Apple. Entonces Xcode logró resolver todas las cuestiones sobre su propia
lucaslt89

12
Esto también ha funcionado para mí ... este ha sido un problema constante con cada lanzamiento de Xcode, y realmente deseo que Apple pase algún tiempo renovando este horrible proceso.
Raconteur

2
También funciona para mí (con Xcode Beta 6), solo asegúrese de eliminar los certificados del sitio web del desarrollador de Apple y el llavero, luego deje que Xcode solucione el problema
Claus

Cuando dice que eliminó todos sus certificados de distribución, ¿está diciendo que los eliminó de su computadora y xcode los reinstaló o dice que los eliminó del portal para miembros y xcode creó otros nuevos en su lugar?
Jacksonkr

19

Me sale una solución sin renovar el certificado:

1 - Archivar el destino con la identidad de firma de código y el perfil de aprovisionamiento adecuados

2 - Botón derecho en el archivo creado en Organizador -> Mostrar en Finder

3 - Botón derecho en el archivo xcarchive -> Mostrar contenido del paquete

4 - Allí, en Finder , vaya a Productos / Aplicaciones /

5 - Sube el archivo Productos / Aplicaciones / nombre de aplicación a iTunes

6 - Cuando la aplicación aparece en iTunes, haz clic derecho sobre ella -> Mostrar en Finder . Este es el archivo ipa

7 - Enviar esta ipa a través de App Loader 3.0

No creo que sea una solución duradera, pero no quiero eliminar mis certificados.


2
por qué deberíamos usar el cargador de aplicaciones aquí? No sé realmente sobre eso.
Mejdi Lassidi

¿Cuáles son los perfiles de aprovisionamiento e identidad de firma de código "apropiados"? Intenté configurar la Identidad de firma del código de lanzamiento en "Distribución iOS" y no me ayudó. Si configuro el Perfil de aprovisionamiento de versión para algo que no sea "Automático", Xcode arruina la Identidad de firma de código.
Greg

¡Muchas gracias! No conocía este.
Mihriban Minaz

17

¡Finalmente lo resolvió!

1) Cree un NUEVO certificado de producción a través de developer.apple.com que requiere que use Keychain Access para crear una nueva clave privada en su computadora

2) En el mismo portal para desarrolladores, abra el perfil de aprovisionamiento de distribución utilizado con esta aplicación y seleccione el nuevo certificado de producción que acaba de crear. Genere la provisión, luego descárguela y ejecútela

3) Ejecute su aplicación, Archívela, luego exporte el archivo.

viola

Esto me llevó días, si no semanas, para darme cuenta, espero que te ayude.


1
Parece que tu "voilà" se autocorrejo; Stack Overflow no es suficiente para permitirme editar.
Jessy

14

Cree un nuevo Certificado de Distribución iOS y elija Producción> Tienda de aplicaciones y sección AdHoc Además, no olvide cambiar Target> Build Settings> Code Signing all a iOS Distribution. (Pero después de crear ipa configúrelo de nuevo a iOS Developer) Solo esto resolvió mi problema.


1
Esa opción está atenuada. ¿Qué me estoy perdiendo?
Greg


11

Hoy enfrenté el mismo problema con Xcode 6.1.1

Cuando intenté agregar el certificado de distribución de iOS a través de Xcode, el error que recibí fue el mismo. Ya había varios certificados de distribución emitidos en el Centro de miembros y no quería invalidarlos porque si se usan para la distribución Ad Hoc en un entorno empresarial, esto también invalidaría las aplicaciones que están instaladas en los dispositivos (al menos esto es lo que yo 'He leído).

Lo que hice fue:
1. A través de Keychain Access generó una solicitud de certificado de una autoridad de certificación. Y guardó la solicitud en un archivo;
2. Ingresé a la sección de Producción del área de certificados del Centro de Miembros y solicité un nuevo certificado de producción "App Store y Ad Hoc", esto solicitó el archivo del paso 1;
3. Descargó el nuevo certificado y cuando se importó en Keychain Access ahora tenía una clave privada.

Después de que limpié Xcode, lo reinicié, verifiqué que en mi cuenta el perfil es visible y construí un nuevo Archivo. Y ahora pude validar el archivo.

Ahora, si trato de solicitar un nuevo certificado "App Store y Ad Hoc", esta opción aparece en gris para mí y supongo que es porque mi cuenta ya tiene el certificado emitido. Si este es su caso, probablemente necesitará invalidar su certificado anterior antes de poder emitir uno nuevo. Es por eso que Apple recomienda hacer una copia de seguridad de su certificado. Pero es muy probable que no necesite invalidar todos los certificados de producción, ya que tengo varios en el perfil.

Espero que esto ayude a alguien :)


Gracias por la información, Angel. Tengo Xcode 6.1.1 y ya lo intenté ayer y hoy, pero debo haber dado un paso frágil porque todavía no puedo validar mi archivo. (Para su información, la razón por la que tiene esa opción en gris, de acuerdo con lo que leí en otras partes de SO, es que ya tiene dos certificados de producción y ese es aparentemente el límite secreto de Apple)
ultrageek

¿Ha visto la clave privada para el certificado de distribución a través de Keychain Access? En caso de que lo vea, puede intentar: 1. Eliminar todos los archivos que tenga en Organizer para este proyecto. 2. Antes de construir su archivo, asegúrese de haber seleccionado el objetivo del proyecto y que el dispositivo objetivo sea un dispositivo real, no un simulador. 3. Haga una "Carpeta de compilación limpia" a través del menú Producto de Xcode. Esta es la misma opción que Limpiar, pero debe mantener presionada la tecla Alt. 4. Ejecute su proyecto en el dispositivo real y asegúrese de que todo esté correcto. 5 Crea tu archivo. 6. Intenta validarlo.
Angel Naydenov

Pero si no ve la clave privada, no podrá validarla ya que no podría firmar el paquete. Ayer probamos este proceso con un colega mío y tuve que exportar mi clave privada a través de la cuenta Xcode con la distribución iOS seleccionada. Luego lo importamos a través de Keychain Access y pudo validar y cargar compilaciones en iTunes Connect. Para mí, lo que necesitaba para obtener este proceso es que realmente necesita los 2 certificados: Desarrollo de iOS y Distribución de iOS. Se utilizan en diferentes casos y para iTunes Connect necesita uno de Distribución :)
Angel Naydenov

Gracias Angel. Finalmente descubrí qué certificado faltaba la clave privada, eliminé cada certificado y perfil de Xcode> Cuentas y Centro de desarrollo, y luego comencé de nuevo. El proceso es demasiado frágil, y supuestamente tener dos cuentas de desarrollador en la misma Mac parece jugar un factor parcial en los problemas.
ultrageek

1
¡Me alegra saber que te diste cuenta de esto!
Angel Naydenov

7

Apple ha cambiado la forma de construir Ad Hoc. Ahora no puede hacer compilaciones de distribución Ad Hoc usando dev cert. En su lugar, debe usar un certificado de distribución con un perfil de aprovisionamiento "Ad Hoc".


¿Tiene un enlace de documentación para esto?
Keab42

2
Puede probarlo eliminando todos los certificados y perfiles y dejar que XCode tome el resto, verá que automáticamente crea certificados de distribución y perfil de aprovisionamiento ad-hoc.
Son Nguyen

2
Lo hice, gracias. Me preguntaba si Apple realmente lo había anunciado en algún lugar o si simplemente nos había dejado descubrirlo.
Keab42

6

Creo que la razón real por la que terminó en esta pantalla es mientras intentaba distribuir el archivo .ipa a sus evaluadores y clientes. En Xcode 6, para obtener el archivo .ipa, puede usar el método anterior para la generación de iPA:

  1. Seleccione organizador en Xcode. En la pestaña Archivos, seleccione el Archivo cuyo archivo iPA necesita generar.
  2. Haga clic derecho y seleccione la opción "Mostrar en Finder"
  3. Verá el archivo .xarchive. Haga clic derecho y seleccione "Mostrar contenido del paquete"
  4. Verá carpetas: dSYM, Info.plist y Productos.
  5. Abra Productos> Aplicaciones y verá su archivo .app.
  6. Arrastre y suelte este archivo .app a iTunes en Mac.
  7. Su archivo .app aparecerá en "Mis aplicaciones" en iTunes.
  8. Haga clic derecho en su aplicación y seleccione "Mostrar en Finder".

Ahora tiene el archivo .ipa que puede enviar a sus evaluadores para que lo prueben. Espero que esto ayude.


4

Ha habido cambios en la forma en que Apple administra nuestra clave pública y privada. El método anterior para compartir cuenta en dos máquinas era
1. aprovisionamiento de
descarga 2. certificado de exportación / pago

instalarlos en el otro mac

pero ahora no tiene que hacer eso para exportar toda su cuenta.
1.XCode -> preferencias -> cuenta (seleccionar cuenta) en la parte inferior izquierda hay una opción para exportar que ingrese la descripción de la imagen aquí se le pedirá que proporcione una contraseña para que sea necesaria al importar en otro sistema. Se descargará un archivo de perfil de desarrollador. ubicación de su elección.

2. Descárguelo en otra Mac y cuando vea el mensaje, su dispositivo ya tiene una identidad de firma válida, haga clic en Importar perfil de desarrollador e importe este archivo .developerprofile. ingrese la descripción de la imagen aquíingrese la contraseña cuando se le solicite.

obtuve ayuda de aquí


@Ranjit luego borra todo y crea nuevos certificados
amar

3

Lo resolví siguiendo los siguientes pasos:

1) en su cuenta de desarrollador de Apple: Cree un nuevo Certificado de Producción Elija la App Store y la Opción Ad Hoc

2) en su cuenta de desarrollador de Apple: cree un nuevo perfil de aprovisionamiento con su ID de paquete actual y el certificado creado en el paso uno

3) en tu xcode:

  • Selecciona tu objetivo
  • En la pestaña Configuración de compilación en la firma de código de zona
  • En la subzona Identidad de firma de código - Liberación
  • Configure su nuevo certificado de distribución (ad hoc)
  • En el perfil de aprovisionamiento: configure su nuevo perfil de aprovisionamiento (ad hoc)

Parece que xcode 6 ahora requiere un certificado de distribución ad hoc para exportar su IPA.

ingrese la descripción de la imagen aquí


3

Hoy tuve el mismo problema y creo que encontré una buena solución.

En primer lugar, hay algo anormal:

ingrese la descripción de la imagen aquí

lo normal es:

ingrese la descripción de la imagen aquí

y en el llavero:

ingrese la descripción de la imagen aquí

lo normal es:

ingrese la descripción de la imagen aquí

entonces, me doy cuenta de que me falta el perfil de aprovisionamiento correcto que contiene el certificado de distribución de iOS correcto.

Finalmente, mi solución es: usar mi archivo CertificateSigningRequest.certSigningRequest para generar un nuevo certificado de distribución de iOS, y usar el nuevo certificado de distribución de iOS para generar un nuevo perfil de aprovisionamiento .

Tenga en cuenta que no elimino el antiguo perfil de certificación y aprovisionamiento, porque mi colega trabaja bien con ellos. ¿Afecta esto a las aplicaciones que ya publiqué? La respuesta es NO . Acabo de cambiar el certificado de firma de código, y algunos certificados importantes, como los push notification certificatevínculos con la ID de la aplicación:

ingrese la descripción de la imagen aquí

Así que no te preocupes por eso.

Espero que lo anterior sea útil.


2

Como señaló un comentarista, esto ha demostrado ser una solución para mí y para otros:

Eliminé y volví a descargar todos mis certificados requeridos junto con las claves necesarias para generar y pude superar este error


44
¿Cómo eliminó todos sus certificados? Los eliminé del llavero, pero sigo teniendo el mismo problema.
lucaslt89

1
¿Volvió a descargar los certificados y se aseguró de que tenían claves en los certificados @lucas?
3254523

55
Sí, lo hice casi 20 veces y todavía tengo el mismo problema. He quitado todos mis certificados, perfiles de datos, aplicaciones archivados anteriores, y todavía tienen la "Su cuenta ya con un certificado válido iOS distribución"
lucaslt89

2
de esta manera, en realidad le da permiso a xCode para crear y usar automáticamente un perfil de aprovisionamiento ad-hoc, verifique su programa de desarrollo de Apple, verá ese perfil adhoc.
Son Nguyen

2

Revoco mis certificados de producción y solicito otro, resuelvo este problema. Quizás necesites reiniciar tu xcode.


Esto funcionó para mí. Irónicamente, el certificado de producción tenía su clave privada en mi llavero, ¡y todavía era válido!
markshiz

2

Acabo de encontrar esto después de actualizar de Xcode 5 a 6.

En mi caso, crear un nuevo certificado de producción y luego volver a crear el perfil de aprovisionamiento de distribución para mi aplicación hizo el truco.


1

En el último Xcode 6.0 oficial, esto sucederá si accidentalmente creó un registro en su archivo de derechos que tiene una clave como esta:

com.apple.security.application-groups

No estoy seguro si Xcode lo creó automáticamente por defecto. Pero eliminar esa clave resolvió mi problema. No tuve que recrear ningún certificado. No fue mi problema.


1
¿Dónde encontró este archivo asignar?
Steven

Es el archivo plist llamado: PRODUCT_NAME.entitlements (que fue creado por Xcode por defecto)
thkeen

com.apple.security.application-groupsse activa si habilita el grupo de aplicaciones desde Capabilities. Si crea un nuevo objetivo para desarrollar la extensión de la aplicación, se incluye automáticamente.
Adnan

1

Resolví esto simplemente regenerando el perfil de aprovisionamiento en el portal del desarrollador (en mi caso, un perfil de App Store) y agregándolo a mi computadora a través de la Utilidad de configuración de iPhone. No quería meterme con los certificados y lo evité con éxito.

Noté este mensaje de error registrado desde Xcode en mi consola:

Ninguno de los perfiles de aprovisionamiento válidos permitía los derechos especificados: identificador de aplicación, informes beta activos, grupos de acceso de llavero.

Después de descargar un nuevo perfil de aprovisionamiento, lo que faltaba beta-reports-active = trueestaba presente y Xcode firmó la compilación.


1

Mi solución fue eliminar el único certificado de producción de iOS que estoy usando y volver a crearlo. Al hacer esto, debe crear un nuevo perfil de aprovisionamiento asignando el certificado que acaba de crear.

Luego hice el proceso de archivo de nuevo y funciona!


1

Además, descubrí que las cuentas Xcode entran en juego:

ingrese la descripción de la imagen aquí

Resultó que tenía un certificado de distribución válido en mi cuenta personal ( mobilología ), así que eliminé esa cuenta temporalmente de la sección Cuentas (es posible que desee dejar solo esa cuenta desde la que está distribuyendo).

De repente, el proceso de firma / archivo funcionó.


1

Paso 1: -Inicie sesión en su cuenta de desarrollador de Apple

Paso 2: -Elegir certificados

Paso 3: -Borrar si hay más de un certificado de distribución

Paso 4: -A continuación, vuelva a intentar el archivado (si el error persiste, revoque todos los certificados y cree un nuevo certificado de distribución y edite sus perfiles de aprovisionamiento).


1

Creo que es un error de Xcode. para que funcione, necesito eliminar el perfil provisional de distribución real y tuve que hacer un nuevo perfil de distribución provisional desde devcenter. Esto funciona de mi


1

También enfrenté el mismo problema, estaba usando un certificado de desarrollo en lugar de Adhoc. El problema se soluciona después de usar el certificado Adhoc.


1

Elimine su certificado de distribución de ios del sitio de desarrolladores de Apple y vuelva a generar la distribución de ios con el archivo certSignReq. Funciona para mi siempre. Sus otras aplicaciones no se verán afectadas. Al menos en mi caso nunca lo hizo.


1

En mi caso, generé un nuevo perfil de distribución y lo agregué a XCode, luego intenté enviar la compilación. Resulta que todo lo que tuve que hacer para deshacerme de este mensaje fue reiniciar XCode e intentar nuevamente enviar. Trabajó.


1

En mi caso, recibí el mensaje de error al intentar exportar y compilar AdHoc desde Organizer. Hice dos cosas, cualquiera de las cuales puede haber solucionado el problema:

1) Exporté el certificado existente que decía que no tenía de mi llavero, lo eliminé del llavero y lo reimporté.

2) Creó un certificado de distribución ad-hoc, actualizó la cuenta XCode para obtener el nuevo perfil de aprovisionamiento de distribución.

Después de eso pude exportar exactamente el mismo archivo a una compilación AdHoc. Realmente creo que fue solo el hecho de que me faltaba una distribución ad-hoc dirigida a ese ID de paquete específico que llevó a la confusión de XCode.

Seguimiento: el archivo que había creado antes no funcionaba, tuve que volver a generarlo. Una pista de que este era un problema era que al seleccionar el archivo y optar por exportar una compilación Ad-Hoc, la cuenta predeterminada seleccionada era la cuenta incorrecta para la compilación (el proyecto no tenía una cuenta predeterminada seleccionada cuando archivé la compilación).


1

Esto es lo que funcionó para mí (cuenta empresarial)

Importe el perfil de desarrollador de la otra máquina, que cargó el certificado que necesitaba con la clave secreta.
Cambie el nombre del paquete de la aplicación al nombre de la empresa (fue nombrado bajo el nombre de la tienda de aplicaciones).
Cambie el nombre del equipo en la pestaña "General" al equipo de mi empresa, ¡estaba predeterminado en mi cuenta personal de desarrollador!

Con estos cambios, podría exportar un ipa como ad-hoc y empresarial, subirlo a Hockey Rink y descargarlo en mi teléfono

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.