No se encontró una cadena de autorización 'aps-environment' válida para la aplicación en la tienda de aplicaciones

103

Así que tengo esta aplicación llamada Dripper que publiqué hace aproximadamente un mes y luego una actualización hace un par de días. La actualización agregó notificaciones push y algunos pequeños ajustes. Lo probé con sandbox-apn usando el perfil de desarrollo y todo funcionó muy bien. Luego cambié las cosas a la apn de producción y lo empujé a vuelo de prueba, nuevamente las cosas funcionaron perfectamente. Una vez que puse la actualización en el mercado y la ejecuté, me di cuenta de que no recibía ningún registro push nuevo en el servidor. Miré los registros de la consola para el dispositivo y encontré esto:

4 de diciembre 17:55:15 Ina-touch-it coffco [1210]: Registro para notificaciones remotas
4 de diciembre 17:55:15 Ina-touch-it SpringBoard [52]: No se encontró una cadena de autorización válida 'aps-environment' para la aplicación 'Gotero': (nulo). No se enviarán notificaciones.
4 de diciembre 17:55:15 Ina-touch-it coffco [1210]<Warning>: Failed to register with error : Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x174270900 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application}

Estoy un poco confundido porque pensé que la producción-apn funcionaría igual entre las compilaciones ad-hoc y de la tienda de aplicaciones.

Aquí está la identificación de mi aplicación y sus derechos -> http://i.stack.imgur.com/uf4pB.png

Aquí está el perfil de aprovisionamiento para la tienda de aplicaciones -> http://i.stack.imgur.com/AYOV5.png

Jessiah
fuente
Aquí está siendo firmado y cargado -> i.stack.imgur.com/AziCI.png Configuración de compilación -> i.stack.imgur.com/j2TFG.png
Jessiah

Respuestas:

282

Soluciono este problema habilitando la función de notificación automática.

Haga clic en .xcodeproj -> Capacidades -> Habilitar notificación push

wei
fuente
15
En XCode 8 vi un error en esta sección que decía que era necesario agregar un archivo de derechos. Hice clic en esto para corregirlo y luego funcionó bien.
Pellet
Recientemente apareció al comenzar a desarrollar en Xcode 8 y esto lo solucionó. ¡Gracias!
Kody R.
Anteriormente estaba trabajando en Xcode 7.3 pero de repente no me registré en Xcode 8, pero esto resolvió mi problema al habilitar la capacidad de notificación automática.
Vinod Rathod
Apple decide ocultar esta opción en algún lugar profundo de Xcode 8.1. Por favor, avíseme si alguien puede encontrarlo.
Thomas Sebastian
No obtuve la opción "Notificación push" en la lista de capacidades. Tenía algo que ver con el hecho de que XCode generaba automáticamente mi perfil de aprovisionamiento (soy nuevo en el desarrollo de iOS, así que podría estar equivocado ...). Tuve que iniciar sesión en mi cuenta de desarrollador y crear manualmente un perfil de aprovisionamiento para mi aplicación antes de que mostrara notificaciones automáticas en la lista de capacidades. Finalmente, habilitarlo solucionó este problema.
Max Mumford
103

Solucioné este problema así:

  • Ve a "Preferencias" de Xcode
  • Ir a la pestaña "Cuentas"
  • Seleccione mi ID de Apple y haga clic en "Ver detalles"
  • Haga clic en la flecha en la esquina inferior izquierda para actualizar
  • Haga clic en "Listo"

¡E intenta de nuevo!

Fuente:

Erwan
fuente
6
luego debe seleccionar el perfil de aprovisionamiento correcto en Build Setting
Hashem Aboonajmi
2
En mi caso, necesitaba regenerar los perfiles de aprovisionamiento en el centro de desarrollo. Luego, descargue todos los perfiles y certificados nuevamente a través de Xcode> preferencias> Cuentas> Su ID de Apple> botón ver detalles en la esquina derecha> botón descargar todo. Después de eso, debería funcionar de nuevo.
blackjacx
2
Me parece triste que haya tantos fallos en el proceso de inserción y despliegue. La única forma en que puedo tolerar algo de esto es hacer el 100% de todo manualmente y saber lo que Xcode está intentando hacer, y administrar las identidades de Keychain y los perfiles de aprovisionamiento en el sistema de archivos y a través de la Utilidad de configuración de iPhone.
Tom Pace
57

Debe tener que habilitar Target—> capacidades—> notificación de inserción. Me he enfrentado a este problema con Xcode 8.ingrese la descripción de la imagen aquí

Ram G.
fuente
18

Estos problemas se deben a que el perfil de aprovisionamiento actual no contiene información APNS, ya que el perfil de aprovisionamiento se crea ANTES de crear el certificado APNS.

Por lo tanto, para resolver el problema, cree un nuevo perfil de aprovisionamiento y seleccione el perfil de aprovisionamiento en Xcode. Entonces has terminado.

Además, cuando agrega push, creo que también ha actualizado los certificados en el llavero.

Fahim Parkar
fuente
El perfil que estoy usando se creó después de que creé el certificado para la producción push apn. ¿Hay algo que pueda hacer para confirmar que falta o contiene la información de apns?
Jessiah
@Jessiah: No. Es como si tuviéramos que seguir los pasos proporcionados por Apple.
Fahim Parkar
6

Con respecto a Xcode 9, algunas de las respuestas están desactualizadas o incompletas para resolver este problema específico.

Estos fueron los pasos a seguir para mí:

1. Cree el perfil de aprovisionamiento

( FCM no es un requisito previo para las notificaciones push, pero sus guías son increíblemente claras, aquí está el enlace )

Para probar su aplicación mientras está en desarrollo, necesita un perfil de aprovisionamiento para el desarrollo a fin de autorizar a sus dispositivos a ejecutar una aplicación que aún no está publicada en la App Store.

  1. Vaya al Centro de miembros para desarrolladores de Apple e inicie sesión.
  2. Navegue a Certificados, Identificadores y Perfiles.
  3. En el menú desplegable en la esquina superior izquierda, seleccione iOS, tvOS, watchOS si aún no está seleccionado, luego navegue a Provisioning Profiles> All.
  4. Haga clic en el botón + para crear un nuevo perfil de aprovisionamiento.
  5. Seleccione Desarrollo de aplicaciones iOS como tipo de perfil de aprovisionamiento, luego haga clic en Continuar.
  6. En el menú desplegable, seleccione la ID de la aplicación que desea usar y luego haga clic en Continuar.
  7. Seleccione el certificado de desarrollo de iOS del ID de la aplicación que eligió en el paso anterior, luego haga clic en Continuar.
  8. Seleccione los dispositivos iOS que desea incluir en el perfil de aprovisionamiento y luego haga clic en Continuar. Asegúrese de seleccionar todos los dispositivos que desea usar para sus pruebas.
  9. Ingrese un nombre para este perfil de aprovisionamiento (p. Ej., Perfil de desarrollo de aplicaciones de muestra de Firebase), luego haga clic en Generar.
  10. Haga clic en Descargar para guardar el perfil de aprovisionamiento en su Mac.
  11. Haga doble clic en el archivo de perfil de aprovisionamiento para instalarlo.

2. Activar las funciones de notificaciones push

  1. Ir al editor del proyecto, del manual oficial ingrese la descripción de la imagen aquí
  2. En la sección de capacidades, active la notificación push ingrese la descripción de la imagen aquí
micaball
fuente
4

Tuve el mismo problema al usar iOS 8.0 y versiones superiores; No obtuve el token del dispositivo y estaba dando un error: "no se encontró una cadena de autorización válida 'aps-environment' para la aplicación"

Lo arreglé siguiendo los pasos a continuación

  • He creado un nuevo perfil de aprovisionamiento para el ID de la aplicación.
  • lo agregó en xcode
  • proyecto Ir a "Preferencias" de Xcode
  • Vaya a la pestaña "Cuentas" Seleccione mi ID de Apple y haga clic en "Ver detalles"
  • seleccione su perfil de aprovisionamiento
  • Haga clic en la flecha en la esquina inferior izquierda para actualizar
  • Haga clic en "Listo"

y ahora ejecuta el proyecto definitivamente funcionará.

Venky Chittala
fuente
3

Por alguna razón, la solución de Wei no me estaba funcionando. Al hacer clic en Arreglar derechos, Xcode generó dos archivos y aún no funcionaba, de hecho, los archivos de derechos generados estaban vacíos.

Esto se debió (aparentemente) a que el PRODUCT_NAME del proyecto era bastante largo e incluía espacios y letras "ä" y "ö". Después de cambiarlo a una versión corta con letras solo en inglés, la solución de Wei funcionó correctamente.

FrankByte.com
fuente
1

Me tomó un tiempo descubrir qué causaba un error de autorización de entorno aps no válido. El problema era que había dos archivos .entitlements en el proyecto XCode. Uno es platform / ios //. Autorizaciones y otro es platform / ios // Resources / .entitlements y las autorizaciones apropiadas están presentes en el primer archivo solo mientras XCode está configurado para usar el último. Actualicé el último archivo manualmente y todo comenzó a funcionar. Otra opción para solucionar esto es cambiar qué .entitlements usa XCode. Esto se puede hacer en Build Settings -> Signing -> Code Signing Entitlements config param.

No estoy seguro de por qué hay dos archivos .entitlements en XCode. ¿Podría ser que el complemento push de cordova creó el segundo (estoy desarrollando una aplicación móvil híbrida de cordova)? ¿Y cuál es la ubicación correcta para el archivo .entitlements?

Alex Ryltsov
fuente
-1

Experimenté este problema y lo resolví con la primera solución.

Sin embargo, fallé una vez porque había iniciado sesión en dos cuentas de Apple. Después de quitar uno, todo empezó a funcionar.

Desen GUO
fuente