¿Cómo arreglar "no se encontró una cadena de autorización 'aps-environment' válida para la aplicación" en Xcode 4.3?

153

He estado intentando crear una aplicación de iOS simple y simple que pueda recibir notificaciones push. Mi única razón para hacerlo es establecer un procedimiento para que lo usen otros miembros del equipo, y no he podido encontrar una versión actualizada y funcional de tales instrucciones en otra parte de la web. Nuestra tienda es bastante nueva para el desarrollador de iOS, personalmente no tengo experiencia con el desarrollador de iOS y Xcode. He tropezado con decenas de tutoriales, artículos y publicaciones de problemas de Apple y otros lugares y siento que podría estar casi allí ...

Aquí es donde tengo que hacerlo (tenga en cuenta que estoy usando Xcode 4.3 y estoy tratando inicialmente de implementar solo en iOS 5.1, y deduzco que algunas cosas pueden haber cambiado recientemente en comparación con versiones anteriores de Xcode, pero nuevamente soy nuevo para todos esto, y encontrarlo completamente confuso y complicado):

1) Tengo un perfil de aprovisionamiento en mi iPhone que tiene habilitado Push

2) En mi proyecto Xcode de prueba, seleccioné ese perfil de aprovisionamiento como identidad de firma (en Configuración de compilación> Firma de código)

ingrese la descripción de la imagen aquí

3) Tengo mi identificador de paquete en Resumen e información> Propiedades de destino de iOS personalizadas configuradas correctamente * (creo que ??)

4) Tengo que registrar registerForRemoteNotificationTypes en didFinishLaunchingWithOptions de mi delegado

5) Tengo didRegisterForRemoteNotificationsWithDeviceToken y didFailToRegisterForRemoteNotificationsWithError en mi delegado, configurado para registrar el token o error del dispositivo respectivamente

6) Tengo habilitados los derechos marcados en Resumen

7) Justo debajo de que el archivo de derechos seleccionado es Tinker6 (el nombre de mi proyecto de prueba), que se generó automáticamente cuando marqué Habilitar derechos

8) En el archivo Tinker6.entitlements tengo lo siguiente (que he recopilado es correcto en base a varias publicaciones diferentes en toda la web, pero que no puedo encontrar nada definitivo de Apple en sí):

ingrese la descripción de la imagen aquí

Actualizado

9) Además, he intentado todo sin un archivo de derechos y obtengo esencialmente el mismo resultado.

10) El contenido de mi archivo de aprovisionamiento móvil incluye derechos correctamente (he codificado el número y el dominio pero estructuralmente el mismo):

<key>application-identifier</key>
<string>12355456A7.com.whatever.tinker</string>
<key>aps-environment</key>
<string>development</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
    <string>12355456A7.*</string>
</array>

/ finaliza la actualización

Cuando intento ejecutar esto en mi dispositivo, aparece el siguiente error en la salida de Xcode:

2012-06-11 12:45:23.762 Tinker6[13332:707] Failed to get token, error: 
Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' 
entitlement string found for application" UserInfo=0x24a3b0 
{NSLocalizedDescription=no valid 'aps-environment' entitlement string 
found for application}

He intentado establecer get-task-allow en NO, aps-environment en producción, las cuatro combinaciones posibles, lo mismo.

¿Cómo puedo superar esto? ¿Dónde está la documentación definitiva sobre esto?

- Siguen más antecedentes -

* En cuanto a la identificación del paquete, todavía no tengo claro cómo se debe establecer en relación con los ID de aplicaciones y los ID de perfil en el perfil de aprovisionamiento. En el portal de aprovisionamiento en App Ids tengo esto (nuevamente, codifiqué el número y el dominio):

ingrese la descripción de la imagen aquí

Y la identificación del paquete de dos lugares está configurada. Tengo esto:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

No estoy del todo seguro de que estos sean correctos o de si uno o ambos deben establecerse en 12355456A7.com.whatever.tinker, aunque los he intentado anteriormente en el proceso sin éxito ...

Tenga en cuenta que hay muchas publicaciones con títulos similares, sin embargo, todas parecen estar desactualizadas en función de los nombres de archivo y demás, y el hecho de que ninguna de las soluciones parece ser útil. Espero que el mayor nivel de detalle que he dado garantice una respuesta de calidad. Probablemente asignaré una recompensa lo antes posible y si da una respuesta de alta calidad que conduzca a una solución, le otorgaré la recompensa y promocionaré su respuesta a través de Twitter y mi blog. Especialmente si publica una publicación cruzada realmente buena "aquí están los 500 pasos exactos que necesita para que una aplicación de notificación push simple funcione, incluido el aprovisionamiento y cualquier otra cosa" en su blog o lo que sea.

jwl
fuente

Respuestas:

94

Si creó su perfil de aprovisionamiento antes de configurar app IDfor for, intente regenerar el perfil de aprovisionamiento.

iOS Provisioning Portal -> Provisioning -> Your cert -> EDIT -> Make a edit -> Download new provisioning

Trabajó para mi. Ahora puedo usar push.

elp
fuente
¿puede ser más explícito con respecto a lo que implica exactamente "regenerar el perfil de aprovisionamiento"? ¿Es este un paso en XCode, en el Portal de aprovisionamiento, dónde? ¡Gracias!
jwl
2
En el portal Simplemente agregue o elimine un dispositivo y se generará su aprovisionamiento. Después de eso, haga doble clic e instálelo en su llavero.
elp
perdón si estoy siendo denso, pero ¿agregarlo / eliminarlo en Dispositivos? ¿O en algún lugar debajo del perfil de aprovisionamiento real en cuestión, y si es así exactamente dónde?
jwl
Agregar o quitar dispositivos es un truco para regenerar su aprovisionamiento. Necesita regenerar uno para usar la notificación push, porque está vinculado a la identificación de la aplicación y al certificado de inserción.
elp
69

En primer lugar, no necesita el archivo de derechos a menos que esté agregando pares de clave / valor personalizados que no existen en el perfil de aprovisionamiento. Cuando se crea su aplicación, todos los derechos del perfil de aprovisionamiento se copiarán a la aplicación.

Dado que todavía ve un mensaje de error sobre derechos faltantes, solo puedo suponer que las opciones de firma de código no son correctas en la configuración de compilación.

Debe asegurarse de seleccionar el perfil correcto para la configuración "Depurar" y, para estar seguro, de haber seleccionado el perfil correcto tanto para "Depurar" como para el nodo secundario con la etiqueta "Cualquier SDK de iOS":

ingrese la descripción de la imagen aquí

Aunque esta captura de pantalla muestra el perfil "Desarrollador automático" seleccionado, elija el perfil de aprovisionamiento exacto que desea del menú desplegable, solo para fines de prueba. Puede ser que Xcode elija automáticamente un perfil diferente al que desea.

También asegúrese de hacer una compilación limpia, eliminar por completo la aplicación de su dispositivo, etc. Esto es solo para asegurarse de que no tenga alguna pelusa vieja por ahí.

Mike Weller
fuente
Por # 2 en mi publicación, creo que está configurado correctamente, aunque he agregado una captura de pantalla aclaratoria para verificar. También intenté eliminar la aplicación por completo y dejarla inactiva durante 2 días según una recomendación que vi en algún lugar que lleva un día restablecer cierta información (¿sí, estoy agarrando pajillas?). Pero cuando dice "Debe asegurarse de que esté seleccionado el perfil correcto para la configuración" Depurar ", ¿qué quiere decir exactamente? ¿Dónde selecciono eso?
jwl
Si hace clic en la parte "Desarrollador de iPhone", o lo que esté configurado como el valor actual, verá un menú desplegable de todos los perfiles de aprovisionamiento que Xcode conoce. Asegúrese de que esté seleccionado el correcto o de que el elemento "Desarrollador automático" elija el correcto. El menú desplegable debería mostrarte todo.
Mike Weller
¿Y está seguro de tener el último perfil de aprovisionamiento? ¿Podría ser que tiene una versión anterior, antes de que se habilitara la inserción?
Mike Weller
2
Bueno, sí, eso creo. Lo que he hecho para obtener el nuevo perfil de aprovisionamiento es, en Xcode Organizer, eliminar el perfil de la Biblioteca y del dispositivo, y luego volver a la pantalla de la Biblioteca y hacer clic en Actualizar. Esto lo hizo retroceder desde el Portal de aprovisionamiento. Luego agregué esto al dispositivo. Y como se muestra arriba, el contenido XML ish del archivo de aprovisionamiento
móvil
3
Ach, lo siento. Es necesario que haya un -antes de la ruta: codesign -d --entitlements - /path/to/my.app. En este punto, también vale la pena verificar que se encuentre en el directorio Debug-iphoneos, ya que "Mostrar en el buscador" a veces puede llevarlo al lugar equivocado.
Mike Weller
64

Me he enfrentado a este problema en Xcode 8. Debe tener que habilitar Target—> capacidades—> notificación push. Mira la captura de pantalla.

ingrese la descripción de la imagen aquí

DipakSonara
fuente
1
Esto me ayuda !!!! Simplemente haga clic en un botón ... para resolver mi problema que estoy depurando durante horas ... Xcode8, también.
Veck Hsiao
3
OMG gracias! ¡Vamos Apple, danos un mensaje de error más razonable!
Ferran Maylinch
Xcode 8 apagó las notificaciones Push para mi aplicación, por lo que esta solución funcionó.
Kevin
1
Gracias, debo haber hecho los otros pasos de configuración 3 veces antes de encontrar esto. Me siento como un idiota, pero también que las herramientas son malas para permitir que este sea el problema.
Collin Flynn
Me salvaste el día, amigo!
oskarko
47

La forma más fácil es hacer esto desde sus cuentas con Xcode:

Pásate por Xcode -> Preferencias -> Elija la pestaña Cuentas -> Ver detalles -> Pulse el botón actualizar en la parte inferior izquierda -> Listo.

Construir de nuevo y debería funcionar.

ooxio
fuente
19

Ok, me enfrenté al problema antes. Dado que la notificación push requiere la implementación en el servidor, volver a crear el perfil no era una opción. Entonces encontré esta solución SIN crear un nuevo perfil de aprovisionamiento.

Xcode no está seleccionando correctamente el perfil de aprovisionamiento correcto, aunque lo estamos seleccionando correctamente.

Primero ve al organizador. En la pestaña Dispositivos, Perfil de aprovisionamiento de la lista Biblioteca, seleccione el perfil deseado que estamos tratando de usar. Haga clic derecho sobre él y luego "Mostrar perfil en Finder".

ingrese la descripción de la imagen aquí

Se seleccionará el perfil correcto en la ventana del Finder abierta. Anota el nombre.

ingrese la descripción de la imagen aquí

Ahora ve a Xcode> Log Navigator. Seleccione el filtro para "Todos" y "Todos los mensajes". Ahora en la última fase (Build Target) busque el paso llamado "ProcessProductPackaging", amplíelo. Anote el nombre del perfil de aprovisionamiento. NO deben coincidir si tiene el error. ingrese la descripción de la imagen aquí

Ahora, en la ventana del buscador abierto, elimine el perfil de aprovisionamiento falso que Xcode está utilizando. Ahora construye de nuevo. El error debe resolverse. Si no, repita el proceso para encontrar otro perfil falso para eliminarlo.

Espero que esto ayude.

Max
fuente
Esto fue mi culpa, pero lo solucioné usando este método. Accidentalmente puse en el cuadro de información un identificador diferente del que generé el certificado.
JavaCoderEx
18

La respuesta fue: comenzar de nuevo, hacer todo lo mismo pero crear un nuevo perfil de aprovisionamiento e instalarlo. Eso funciono. Inspeccionar todos los detalles (derechos en la provisión móvil) se ve exactamente igual a todo en mi pregunta aquí. Pero ahora funciona. Apple: ¿WAT?

Por supuesto, habría sido obvio hacer esto si fuera posible eliminar los perfiles de aprovisionamiento. Pero como eso no es posible, no quería saturar nuestro equipo con un montón de perfiles de prueba. Aún así, finalmente perdió la paciencia y lo intenté de todos modos, y terminó funcionando. Whatevs.

jwl
fuente
Crear un nuevo perfil y "ensuciar" el antiguo como se dice en esta otra pregunta SO me funcionó: stackoverflow.com/questions/5681172/…
scurioni
Todo lo que tenía que hacer era eliminar el perfil de aprovisionamiento existente del portal y volver a crearlo. Puede eliminar perfiles ahora después de la actualización, por lo que no es necesario crear una nueva identificación de aplicación.
Odyth
El nuevo perfil de aprovisionamiento con el mismo ID de aplicación y certificado de distribución me solucionó el problema. +1 :)
Azik Abdullah
18

Eliminar el antiguo perfil de aprovisionamiento de XCode en el Organizador.

Luego, genere un nuevo perfil de aprovisionamiento para el mismo ID de paquete en el portal de aprovisionamiento de iOS (después de haber habilitado la inserción).

Importe el nuevo perfil de aprovisionamiento en XCode, configúrelo en la configuración de compilación de su aplicación.

Construye, corre, funciona.

Solo lo hice.

Me tomó 10 minutos desde el error hasta el éxito.

usuario1006117
fuente
Este es el que funcionó para mí también. Editar el antiguo perfil de aprovisionamiento y descargar no funcionó para mí. ¡Gracias!
prageeth
Como apéndice útil, en lugar de obtener un nuevo perfil de aprovisionamiento, simplemente pude eliminar el anterior
ritmatter,
1
Recomiendo no hacerlo a mano. Use github.com/fastlane/PEM .
fatuhoku
16

XCode 6.1.1 y varias cuentas de desarrollador de Apple

Otra respuesta para esta combinación ya bastante completa: me encontré con este problema nuevamente hoy, y esta vez se debió a que tenía varias cuentas de Apple. Primero necesitaba agregar la segunda cuenta de desarrollador en XCode> Preferencias> Cuentas> +

Asegúrese de que la capacidad de notificación push esté activada

A continuación, necesitaba habilitar explícitamente la compra desde la aplicación en la aplicación (no tenía que hacer esto anteriormente). XCode> (la ventana de la aplicación)> Objetivos> Capacidades> Compra en la aplicación activada (y en esta etapa me dieron la opción de elegir el certificado correcto)

Tenga en cuenta que ya había agregado el certificado Push habilitado haciendo doble clic en Finder.

ingrese la descripción de la imagen aquí

kris
fuente
Supongo que me estaba volviendo loco, supongo que cuando cambié a Xcode 8 beta, apagué el interruptor de notificaciones push o algo así. Gracias
inVINCEable
Gracias, por eso tuve este problema. El ID de mi aplicación está habilitado para la compra desde la aplicación, el centro de juegos, etc., pero en Xcode / capacidades todos están apagados antes, no hay problema. Desde que actualicé a Xcode 8 tengo este problema. Después de habilitar IAP y Game Center en Xcode, ¡el problema se ha ido!
Ethan Long
11

(Xcode 5) Bueno, después de pasar una hora resolví mi problema. Incluso si vuelve a generar el archivo de aprovisionamiento en Xcode 5, debe actualizar manualmente su cuenta. Solo cambié el archivo de aprovisionamiento en la pestaña Organizador que no funcionó, Xcode siguió compilando con el antiguo archivo de aprovisionamiento.

Así que ve a

Xcode> Preferencias> Cuentas> Ver detalles (Seleccione su cuenta)

Luego actualice sus archivos de aprovisionamiento.

Ömer Faruk Almalı
fuente
7

Mi problema era simplemente que estaba firmando con el perfil de aprovisionamiento de comodines administrado por Xcode.

Después de crear un perfil específico de la aplicación (y lo descargué, hice doble clic en él y me aseguré de que mi configuración de compilación se refiriera a él), recibí con éxito un token de dispositivo APNS.

Graham Perks
fuente
También tuve este problema. Xcode 5 es bastante bueno para actualizar cualquier perfil de aprovisionamiento. Agregué el servicio APNS más adelante en el desarrollo. Debe asegurarse de que el póster anterior señala que su perfil de aprovisionamiento es en realidad el perfil exclusivo de la aplicación en la que está trabajando y no un comodín.
Michael
@Michael, ¿cómo te aseguras de esto? Intenté cambiarlo en mi configuración de compilación (en Firma de código), que actualmente no está configurada. Cuando elijo el perfil y la compilación correctos, aparece un error y luego vuelve al perfil de aprovisionamiento de comodines.
Ian Jamieson
@ian ¿qué error estás obteniendo? ¿Estás seguro de que es un perfil válido?
Michael
Ah, lo he ordenado, necesitaba volver a descargar el certificado correcto en mi Mac. Eso parece haber hecho el truco. Gracias.
Ian Jamieson
Alegra oírlo. Eso es lo que suelo hacer cuando parece que la configuración es correcta. Rehacer todos los certs. Parece ser el problema más veces que no.
Michael
6

Tuve el mismo problema que todos los demás y probé todos los trucos anteriores, nada funcionó. Incluso eliminé y comencé de nuevo con una cuenta de desarrollador diferente.

Lo que funcionó para mí al final fue

  1. Haz lo sugerido anteriormente y crea la ID de la aplicación
  2. Luego cree un perfil de aprovisionamiento
  3. NO use el perfil de comodín del equipo (administrado por xcode one) en la sección de desarrollo del aprovisionamiento. Debe crear una por separado utilizando el ID de la aplicación para la que ha activado la notificación push. De esta forma, cuando lo desarrolle, tendrá incorporada la función de notificación push.

No sé si puede habilitarlo para una aplicación comodín, pero después de probar al menos 12 sugerencias diferentes y perder unos días, espero que esto ayude a alguien

Michael Ellams
fuente
2
Pero esto no agrega nada a las respuestas existentes, que ya dan este consejo. Obviamente, una aplicación push necesita su propio perfil; los documentos tienen bastante claro que el perfil comodín no se puede usar para ninguna aplicación que necesite derechos especiales.
mate
1
He hecho esto, pero mi aplicación solo seleccionará el perfil de aprovisionamiento de comodines, no puedo forzarlo a seleccionar el que tenga habilitadas las notificaciones push.
Ian Jamieson
3

Menciona un perfil de aprovisionamiento pero no veo ninguna mención de un perfil de Apple Push.

Para usar Push debe tener un perfil de inserción (hay dos, uno para desarrollo y otro para lanzamiento). Una vez que lo haya creado, deberá asegurarse de que contenga los certificados relevantes (consulte la sección EDITAR a continuación).

Este es un excelente tutorial que lo guiará a través de todos los pasos:

http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12

Me tomaría a mí, o a cualquier otra persona, horas y horas escribir una respuesta detallada detallada como este tutorial, por lo que no voy a intentar ni reclamar la recompensa cuando este tutorial ya existe.

PD: Creo que ya no necesita derechos, esto es algo heredado.

EDITAR: también debe verificar que tiene los perfiles necesarios en el dispositivo: vaya a la configuración, luego a los perfiles generales, verifique que sus perfiles estén en la lista, especialmente el perfil push, por supuesto. También puede verificar esto desde la sección Organizador de XCode. En Organizer hay dos secciones que dicen Provision Profiles: una en la parte superior izquierda de la Biblioteca (estos son los perfiles en XCode que usa para firmar, etc.) También verá una sección llamada Provisioning Profiles para el dispositivo que está conectado, esto es el perfil que está instalado en el teléfono. Si no los tiene instalados en el teléfono, puede descargarlos del sitio web del portal de aprovisionamiento, luego haga clic en el botón Agregar en la parte inferior de la ventana del Organizador.

Mientras esté en el portal de aprovisionamiento, también debe verificar que el perfil de inserción de Apple incluya los certificados: - haga clic en Aprovisionamiento en el menú de la izquierda - verá una lista de su perfil, seleccione EDITAR el perfil de inserción de Apple - verá una sección de certificados, con una lista de desarrolladores o evaluadores, etc. que tenga en su proyecto, asegúrese de que la casilla esté marcada para ellos. - también verá una sección de dispositivos, asegúrese de que se haya agregado el dispositivo que está probando.

Si tiene algún perfil antiguo en XCode o en el dispositivo, elimínelos y descargue / actualice / instale todos los nuevos perfiles desde el portal de aprovisionamiento

Tortas Grunt
fuente
Si los derechos son heredados, ¿por qué recibo un mensaje quejándome de que no tengo derechos? Ya he seguido el tutorial vinculado a la carta sin suerte ... aunque gracias.
jwl
Además, he agregado información sobre el archivo de aprovisionamiento móvil real que podría ser útil.
jwl
eso es cierto, ni siquiera configuro ningún .entitlements para enviar notificaciones con éxito. Una cosa que me hizo tropezar cuando lo hice fue que necesito descargar la disposición móvil manualmente, luego ir a la configuración de compilación y cambiar la identidad de firma para que coincida con la que se acaba de descargar, en mi caso, aparentemente Xcode está eligiendo la disposición móvil comodín.
X Slash
También recibí un mensaje de error sobre los derechos hace un tiempo, es una pista falsa, vea la respuesta de Mike Wellers, eso es lo que hice en mi caso.
Gruntcakes
He actualizado la respuesta con algunas cosas más para que compruebes.
Gruntcakes
2

Me encontré con este mismo problema yo mismo. Para mí, el problema era que el nombre de mi producto ($ TARGET_NAME) no estaba en mayúscula de la misma manera presentada en el certificado proporcionado por apple. Por ejemplo, tenía com.companyid.APNDemo mientras que el certificado de Apple estaba usando com.companyid.apndemo.

Cambié mi objetivo a minúsculas y funcionó. Nota: La clave para mí fue que la configuración de firma de códigos en Configuración de compilación se estableció en mi certificado de desarrollador predeterminado; no el perfil de aprovisionamiento APNTest.

David Carrico
fuente
1

Muchas de las respuestas anteriores son correctas. Sin embargo, parece haber más de un posible error cuando se trata de esto.

El que tuve fue un problema de capitalización con mi ID de aplicación. El ID de mi aplicación por alguna razón no estaba en mayúscula, pero sí. Una vez que recreé la ID de la aplicación con las mayúsculas correctas, todo funcionó sin problemas. Espero que esto ayude. Frustrante como el infierno sin embargo.

PD: si aún no funciona, intente editar el campo de identidad de firma de código manualmente con "editar". Cambie la segunda línea con el nombre del perfil de aprovisionamiento correcto.

matrinox
fuente
1

Me llevó horas resolverlo. Dado que alguien usa scripts personalizados para firmar y empacar mientras que otros usan xcode, solo hay una forma de verificar qué terminó en su aplicación. Volcar sus derechos con

codesign --display --entitlements :- path/to/MyApp.app

y comprobar aps-environmenty application-identifier.

dwery
fuente
He estado enfrentando el mismo problema. Solo quería preguntar, ¿la ruta a la aplicación es para la aplicación instalada en el simulador?
Ajeet
no, es la ruta de la aplicación compilada para el dispositivo real, en el directorio de compilación de xcode.
dwery
1

Este error puede ocurrir cuando su certificado ha expirado.

La solución es renovar el certificado y firmar la solicitud con él.

vahotm
fuente
1

Debe asegurarse de tener en sus perfiles de aprovisionamiento ( https://developer.apple.com/account/ios/profile/ ) un perfil de distribución de iOS.

Cuando cargue desde xCode a la App Store, asegúrese de tener el entorno aps en los derechos. De lo contrario, descárguelos de Ver cuentas -> Ver detalles -> Descargar todo.

Nadav B
fuente
1

Tuve un problema similar He estado rebotando entre XCode 7 y 8 por una variedad de razones. Una vez que use 8 para construir, necesitará usar 8. Simplemente usé Xcode 8 y apliqué algunos de los cambios sugeridos anteriormente y funcionó.

Brent Brookler
fuente
1

recrear archivos provisionales solucionó todos mis problemas.

Faris Muhammed
fuente
0

Parece que hay algo peculiar con los derechos 'automáticos' en Xcode 4.6.

Hay un archivo Entitlement.plist para cada SDK en:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/Entitlements.plist

Una solución alternativa que se me ocurrió fue editar este archivo y agregar la clave de entorno aps furtivo manualmente de la siguiente manera:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>application-identifier</key>
    <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    <key>aps-environment</key>
    <string>development</string>
    <key>keychain-access-groups</key>
    <array>
        <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
    </array>
</dict>
</plist>

Luego, Xcode está generando el archivo Xcent correcto, que contiene la clave de entorno aps en:

/Users/mySelf/Library/Developer/Xcode/DerivedData/myApp-buauvgusocvjyjcwdtpewdzycfmc/Build/Intermediates/myApp.build/Debug-iphoneos/myApp.build/myApp.xcent

Puede localizar dónde se crea su archivo Xcent utilizando el Log Navigator de Xcode,
busque "ProcessProductPackaging".

Desafortunadamente, esta es la única forma en que encontré que soluciona el problema .
(y finalmente puede obtener correctamente el token de inserción ahora)

Solo me pregunto si hay otra solución más elegante disponible.
Consulte mi pregunta SO para obtener más detalles al respecto:
el derecho automático Xcode 4.6 no funciona: "no hay un entorno aps válido"

AmitP
fuente
0

Antes de eliminar y regenerar AppIDs / Profiles, asegúrese de que su Biblioteca y Dispositivo tengan los mismos (y correctos) perfiles instalados.

Comencé a ver este error después de migrar a una nueva computadora. Push había estado funcionando correctamente antes de la migración.

El problema era (duh) que no había importado los perfiles a la biblioteca Xcode en la nueva máquina (en Organizador / Dispositivos en Biblioteca-> Perfiles de aprovisionamiento).

La parte confusa fue que el DISPOSITIVO ya tenía los perfiles correctos y se mostraban como se esperaba en la configuración de compilación, por lo que todo parecía correcto allí, pero la BIBLIOTECA XCode no los tenía, por lo que estaba firmando la aplicación con ... ?? ?

Rodin Lyasoff
fuente
0

Esto fue lo que me arregló. (Ya había intentado activar / desactivar las capacidades, recrear el perfil de aprovisionamiento, etc.).

En la pestaña Configuración de compilación , en Derechos de firma de código , mi archivo .entitlements no era un enlace para todas las secciones. Una vez que lo agregué a la sección Cualquier SDK , se resolvió el error.

ingrese la descripción de la imagen aquí

mogile_oli
fuente
0

Probé todas las respuestas enumeradas aquí, pero nadie resolvió mi problema. En mi caso, este error se debe a mi error tonto en la creación de Appid. Utilicé la ID de la aplicación Wildcard en lugar de la ID explícita de la aplicación causó el problema

Si desea que una aplicación reciba notificaciones remotas (notificación push), debe usar una ID de aplicación explícita , como com.tutsplus.push , en lugar de com.tutsplus. *

Encuentra la captura de pantalla, ingrese la descripción de la imagen aquí

arunjos007
fuente