Xcode 6-¿Cómo elegir el certificado de firma/perfil de aprovisionamiento para la distribución Ad-Hoc?


Para distribuir la aplicación a nuestros probadores utilizamos Xcode, que hacemos mediante el siguiente proceso:

  • Archivo de la aplicación
  • Distribuir para Ad-Hoc
  • Elija el perfil de aprovisionamiento
  • Guardar el .ipa a una carpeta

Pero con Xcode 6, este flujo de trabajo se cambió un poco. Todavía puedo seleccionar la opción de distribución Ad-Hoc, pero no puedo seleccionar el perfil de aprovisionamiento que quiero. Esto nos da ningún control sobre qué certificado de firma se utiliza y la configuración del perfil de aprovisionamiento (utilizamos notificaciones push).

De forma predeterminada iPhone distribution se utiliza la identidad de firma y se genera algún tipo de perfil de aprovisionamiento XC Ad Hoc, que se puede ver en la imagen de abajo: Exportación de IPA Si hace clic en la flecha cerca del perfil de aprovisionamiento, se abre la carpeta con los perfiles de aprovisionamiento.

Así que mi pregunta es:

¿Hay alguna forma en Xcode 6 de seleccionar el perfil de aprovisionamiento utilizado con la distribución Ad Hoc?

Gracias!

Author: Legoless, 2014-07-31

18 answers

Me enfrentaba al mismo problema, resuelto usando el script de la herramienta "xcodebuild" de la línea de comandos, que está preinstalado con XCode6 (no necesitaba reinstalar XCode5).

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

Script en la terminal:

xcodebuild -exportArchive -archivePath $projectname.xcarchive -exportPath $projectname -exportFormat ipa -exportProvisioningProfile 'Provisioning Profile Name'
 52
Author: Aqib Mumtaz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-08 14:11:52

Tuve un problema similar al enviar a la Tienda de aplicaciones. Creé un archivo, luego hice clic en " enviar "y Xcode quería firmar automáticamente con el valor predeterminado" XC com.* "wildcard provisioning profile instead of the explicit profile that already had.

Para arreglar esto, acabo de volver a generar el perfil en el Portal de Desarrolladores de Apple:

1) Ir a developer.apple.com y busque el perfil de aprovisionamiento de distribución que desea utilizar.
2) Selecciónelo, haga clic en "Editar", vuelva a nombrar el perfil y haga clic en "Generar".
3) Descargue el perfil de aprovisionamiento en el escritorio y arrástrelo al icono de Xcode 6.
4) Reiniciar Xcode 6.
5) Abra la ventana del organizador y haga clic en "Enviar" en el archivo que creó. Xcode elegirá automáticamente tu perfil explícito en lugar del genérico.

 31
Author: GingerBreadMane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-16 16:02:20

Una vez que esté en Organizer

  • Seleccione la compilación ad-hoc y haga clic en "Exportar"...."
  • Seleccione "Guardar para Implementación Ad hoc" - > Siguiente
  • En lugar de seleccionar una organización en el menú desplegable, seleccione "Usar recurso de firma local" - > Elegir
  • Exportar y guardar .ipa como antes.

Por supuesto, debe haber generado, descargado e instalado el perfil de aprovisionamiento ad-hoc.

 27
Author: MrPatol,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-01-08 17:01:52

Parece que el último perfil de aprovisionamiento generado gana en este momento. Así que solo puede volver a generar el perfil que desea y descargarlo y Xcode lo utilizará.

Un enfoque ligeramente mejor: establezca el perfil prov deseado en su destino y use la línea de comandos para construir su ipa, que también funciona.

Aquí está el script que estoy usando:

#!/bin/sh

# Current as working as of 2014/09/22
# Xcode 6

OUTPUTDIR="$HOME/build"
APPNAME="your-app"
SCHEME="your-app"
APP_WORKSPACE="$HOME/Path/To/your-app.xcworkspace"

rm "$OUTPUTDIR/$APPNAME.ipa" #deletes previous ipa
xcodebuild -workspace "$APP_WORKSPACE" -scheme "$SCHEME" archive -archivePath "$OUTPUTDIR/$APPNAME.xcarchive"
xcodebuild -exportArchive -exportFormat ipa -archivePath "$OUTPUTDIR/$APPNAME.xcarchive" -exportPath "$OUTPUTDIR/$APPNAME.ipa" 

Y mis ajustes:

Configuración de Xcode

 17
Author: Thorsten,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-22 18:21:37

Tampoco pude resolver esto: me mordió cuando se envió a la AppStore, donde se configuró de forma predeterminada en un perfil comodín.

Terminé construyendo en Xcode 6, luego regresando a la ventana Organizer de Xcode 5 para el envío. De esa manera, te pedirá que elijas un perfil con el que firmar.

 8
Author: Jonathan del Strother,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-16 09:55:01

En Xcode 6 (al menos 6.1 estoy usando ahora)cuando esté haciendo la exportación para ad hoc, xcode 6 escaneará automáticamente si hay algún perfil de aprovisionamiento que contenga todos los dispositivos registrados en la cuenta de desarrollador y al mismo tiempo coincida con el ID del paquete. Si no, utilizará el perfil de provisión XC. Por lo tanto, si desea utilizar su propio perfil, por ejemplo, con el fin de notificaciones push, deberá seleccionar todos los dispositivos en su perfil en el portal de desarrolladores de Apple. Supongo que esa es la razón por la que algunas personas recrean el perfil funcionaría y otros no.

Por cierto,use script puede exportar y cargar a testflight, pero el dispositivo simplemente no puede descargarlo. probablemente en algún lugar me equivoqué. si alguien sabe por qué es, por favor hágamelo saber. tks

 8
Author: AlexHsieh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-23 08:38:55

Esto funcionó para mí:

  1. haga clic en "Ver cuentas.."dentro del "..seleccione un Equipo de Desarrollo.." diálogo.
  2. haga clic en "Ver detalles.."y busque el perfil de aprovisionamiento Ad hoc de XC.
  3. haga clic derecho en ese perfil y elija "Mostrar en Finder".
  4. elimine el perfil seleccionado.
  5. vuelva al diálogo en el paso 1.
  6. haga clic en "Elegir".
  7. haga clic en la flecha cerca del perfil de aprovisionamiento para abrir el aprovisionamiento directorio de perfiles.
  8. suprimir de nuevo el perfil genérico como en el paso 4.
  9. haga clic en el botón "Anterior" del cuadro de diálogo "Enviar [nombre de la aplicación] a Apple:".
  10. seleccione nuevamente "Guardar para Implementación ad hoc"
  11. haga clic de nuevo en el botón "elegir".

Ahora debería ver el nombre correcto del perfil de aprovisionamiento.

 7
Author: user3382891,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-19 12:20:16

Tengo una solución para esto que funciona para mí.

Tengo Xcode 6 y Xcode 5.1.1 instalados, Xcode 6 está en Aplicaciones y Xcode 5.1.1 está en otro directorio. Cuando quiero hacer una compilación, uso Xcode 6 para crear el archivo. Pero también puede ver el archivo creado en Xcode 5.1.1, así que uso Xcode 5.1.1 para distribuir el Ad Hoc .ipa usando el perfil de aprovisionamiento que quiero usar. Así que compila usando Xcode 6 pero distribuye usando Xcode 5.1.1.

 6
Author: Adam Freeman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-28 21:41:16

El uso de activos de firma local durante la exportación resolvió el problema para mí:introduzca la descripción de la imagen aquí

 4
Author: Durga Vundavalli,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-19 13:11:26

La respuesta de @MrPatol no funcionó para mí. Mi escenario de trabajo para Xcode 6.3.2

En el Centro de Miembros - > Perfiles de aprovisionamiento de iOS

  • Elimine el perfil de aprovisionamiento que se estableció de forma predeterminada cuando estaba intentando compilar la aplicación (por ejemplo, "XC..."). Cree un perfil de aprovisionamiento ad-hoc (no de producción) con un nombre corto.

En la Utilidad de Configuración de iPhone - > Perfiles de aprovisionamiento

  • Elimine el mismo perfil de aprovisionamiento (p. ej. "XC...")

En Xcode - > Organizer

  • Seleccione la compilación ad-hoc y haga clic en "Exportar"...." Seleccione "Guardar para Implementación ad hoc" - > Siguiente
  • Seleccione una organización del menú desplegable
  • Compruebe que su nuevo perfil de aprovisionamiento ad-hoc está seleccionado automáticamente
  • Exportar y guardar .ipa como antes.
 3
Author: Serge Seletskyy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-09 11:59:31

Aquí están los dos puntos clave que resolvieron el problema para mí.

  • Al generar el perfil de aprovisionamiento, debe estar vinculado a un ID de aplicación explícito que use el mismo identificador de paquete que su aplicación. Un ID de aplicación comodín no funcionará.
  • Cuando exporte la aplicación para la implementación ad-hoc, seleccione Usar activo de firma local en el menú desplegable y haga clic en Elegir.

Xcode encontrará entonces el perfil de aprovisionamiento correcto haciendo coincidir el ID de la aplicación con el identificador de paquete de la aplicación.

 2
Author: Sarah Elan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-29 13:08:16

De hecho, debe crear un nuevo perfil de distribución, específico para la implementación Ad Hoc. Esto se puede encontrar en el centro de miembros clásico, pero es un nuevo tipo de certificado.

Luego puede seleccionar qué dispositivos se pueden usar para probar la aplicación como lo haría con un perfil de desarrollador.

Y el certificado recién creado estará disponible cuando exporte su paquete desde el Organizador de la manera habitual.

Alternativamente, puede utilizar la solución TestFlight proporcionada por Apple con iOS 8 para permitir que el usuario tenga acceso a la presentación.

introduzca la descripción de la imagen aquí

 1
Author: cdescours,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-22 12:11:01

Tuve el mismo problema, finalmente lo resolví regenerando el perfil que quería usar en Xcode 6 incluyendo todos los dispositivos que tengo registrados en mi cuenta de Desarrollo de iOS, haciéndolo de esa manera, al seleccionar exportar muestra el perfil correcto y puedo hacer la exportación Ad Hoc con Xcode 6 sin usar un script. Espero que ayude.

 1
Author: diegomen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-13 12:28:50

He estado atascado durante un tiempo con esto ,, pero usando Crashlytics resuelto , construir distribuido utilizando el perfil seleccionado en la configuración de compilación de su proyecto Xcode .

Espero que ayude a alguien .
 0
Author: M.Othman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-12-30 15:15:07

Casi el mismo problema. Después de crear un archivo para su distribución (Producto > Archivo), exporte el archivo (haga clic en Exportar...) y elija "Guardar para implementación empresarial"; luego "Siguiente". A continuación, seleccione el" Equipo de Desarrollo " predeterminado (por ejemplo, el nombre de la organización) y haga clic en "Elegir". Finalmente, se le presentará una vista de resumen que también enumera el perfil de aprovisionamiento que Xcode ha encontrado automáticamente (tal vez creado sobre la marcha) para usted. Este PODRÍA ser el perfil de aprovisionamiento incorrecto (normalmente un perfil de aprovisionamiento de comodines, como " XC:*") y podría estar sucediendo porque ya hay un perfil de aprovisionamiento de comodines en el portal del desarrollador. El perfil de aprovisionamiento wildcard PUEDE ser utilizado por otro proyecto anterior y tal vez no sea prudente simplemente eliminar el perfil de aprovisionamiento wildcard del portal del desarrollador.

Usé un ticket de soporte para esto y solo recibí este enlace https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringPushNotifications/ConfiguringPushNotifications.html#//apple_ref/doc/uid/TP40012582-CH32-SW1No es de gran ayuda.

He encontrado que la solución de MrPatol también funciona para Enterprise Deployment y resuelve el problema para nosotros. Primero inicié sesión en el portal de desarrolladores y creé manualmente un perfil de aprovisionamiento que se adaptara a mi aplicación. Luego descargado y instalado el nuevo perfil de aprovisionamiento creado manualmente.

 0
Author: sejersbol,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-05-21 07:49:26

En xcode 7, no pude elegir el aprovisionamiento adhoc a través de

Organizador - > Subir a App Store y Organizador - > Validar

Pero podría elegir a través de Organizador - > Exportar

Editado:

Cargar la aplicación después de exportar para adhoc a app store para TestFlight causó otro problema discutido aquí. Por lo tanto, la solución a ambos estos problemas es uno. Cree el aprovisionamiento de AppStore para poder seleccionarlo a través de organizer y utilizar TestFlight subiendo a appstore.

 0
Author: zeeawan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:23
  1. Creo que es una forma correcta de especificar una opción-Exportoptisplist después de Xcode 7. Elegirá los archivos de provisión correctos, como en la exportación de la interfaz gráfica de usuario, sin importar lo que especifique en la configuración del proyecto.

Xcodebuild-exportArchive-archivePath Archiv Archive_Path -exportPath LOC LOCAL_PACKAGE_DIR-exportoptisplist Export Export_Plist_Path

El archivo OptionPlist es así,

<dict>
  <key>teamID</key>
        <string>MYTEAMID123</string>
        <key> teamID </key>
        <string>app-store</string>
        <key>uploadSymbols</key>
        <true/>
</dict>


<plist>

App-store, empresa, ad-hoc, desarrollo son alternativa

  1. Pero usted puede encontrar otro error después de arriba.

Error Domain = IDEDistributionErrorDomain Code = 14 " No aplicable dispositivos encontrados."userInfo = {NSLocalizedDescription = No hay dispositivos aplicables encontrar.}

Es un problema de ruby. Pruebe este script de shell, xcbuild-safe.sh

xcbuild-safe.sh xxxxNormalOptionsInXcodebuild bla...
  1. Espere un momento, otro extraño error viene.

Xcbuild-safe.sh: línea 62: shell_session_update: comando not encontrado

¿Qué demonios es shell_session_update? Vamos a trabajar alrededor de él. Simplemente defina una función antes del cmd real de xcodebuild, es decir, en la línea 60 o 61.

function shell_session_update() { :; }
 0
Author: Victor Choy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-04-27 03:41:26

En respuesta a su pregunta específica, no no hay forma de seleccionar el perfil de aprovisionamiento que se utilizará. ¿Qué intentas hacer? (es decir, ¿qué permite el perfil que desea seleccionar que el generado automáticamente no lo hace?)

 -4
Author: clarkcox3,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-10-28 13:51:46