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

Así que tengo esta aplicación llamada Dripper que puse hace 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 las cosas funcionaron muy bien. Luego cambié las cosas a la producción-apn y lo llevé al vuelo de prueba, nuevamente las cosas funcionaron perfectamente. Una vez que puse la actualización en el mercado y la ejecuté, noté que no recibía ningún nuevo registro push en el servidor. Miré los registros de la consola para el dispositivo y encontré esto:

4 de diciembre, 17:55:15 Inak-it-it coffco [1210]: se registra para notificaciones remotas
4 de diciembre, 17:55:15 Springboard de Ina-touch-it [52]: no se encuentra una cadena de autorización válida para ‘aps-environment’ para la aplicación ‘Dripper’: (null). Las notificaciones no serán entregadas.
4 de diciembre 17:55:15 Inak-it-it coffco [1210] : 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 comstackciones ad-hoc y de tienda de aplicaciones.

Aquí está la ID de mi aplicación y sus derechos -> http://sofes.miximages.com/ios/uf4pB.png

Aquí está el perfil de aprovisionamiento para la tienda de aplicaciones -> http://sofes.miximages.com/ios/AYOV5.png

Solucioné este problema así:

  • Ir a Xcode “Preferencias”
  • Ve 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 “Hecho”

¡E intenta de nuevo!

Fuente:

Arreglo este problema habilitando la capacidad de notificación de inserción.

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

Debe tener que habilitar Target-> capabilities-> push notification. Me he enfrentado a este problema usando Xcode 8. enter image description here

Dichos 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 estás HECHO.

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

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

Lo arreglé usando los siguientes pasos

  • Creé un nuevo perfil de aprovisionamiento para la id de la aplicación
  • lo agregó a xcode
  • proyecto Ir a Xcode “Preferencias”
  • Ir 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 “Hecho”

y ahora ejecuta el proyecto definitivamente, funcionará.

Por alguna razón, la solución de Wei no funcionaba para mí. Al hacer clic en los derechos de reparación, Xcode generó dos archivos y todavía no funcionaba, de hecho los archivos de derechos generados estaban vacíos.

Esto fue causado (aparentemente) por PRODUCT_NAME del proyecto, que es bastante largo e incluye 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.

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

Aquí estaban los pasos a seguir para mí:

1. Crea el Perfil de Aprovisionamiento

( FCM no es un requisito previo para la notificación automática, pero sus guías son increíblemente claras, aquí está el enlace )

Para probar su aplicación mientras se encuentra en desarrollo, necesita un perfil de aprovisionamiento para el desarrollo que autorice a sus dispositivos a ejecutar una aplicación que aún no se haya publicado en la tienda de aplicaciones.

  1. Navega al Centro de miembros de Desarrolladores de Apple e inicia 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 vaya a Perfiles de suministro> Todos.
  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 aplicación que desea usar y luego haga clic en Continuar.
  7. Seleccione el certificado de desarrollo de iOS de la ID de la aplicación que ha elegido en el paso anterior, luego haga clic en Continuar.
  8. Seleccione los dispositivos iOS que desea incluir en el Perfil de provisión, luego haga clic en Continuar. Asegúrese de seleccionar todos los dispositivos que quiera usar para su prueba.
  9. Ingrese un nombre para este perfil de aprovisionamiento (p. Ej., Perfil de desarrollo de la aplicación de ejemplo de Firebase) y 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 provisión para instalarlo.

2. Activar las capacidades de Push Notification

  1. Ir al editor del proyecto, del manual oficial enter image description here
  2. En la sección de capacidades, active la notificación de inserción enter image description here

Me tomó un tiempo averiguar qué no causaba un error válido de aps-environment entitlement. El problema era que había dos archivos .entitlements en el proyecto XCode. Una es la plataforma / ios //. Derechos y otra es plataforma / ios // Recursos / .entitlements y las autorizaciones correspondientes están presentes en el primer archivo solo mientras XCode está configurado para usar este último. Actualicé el último archivo manualmente y todo comenzó a funcionar. Otra opción para solucionar esto es cambiar qué .entitlements es usado por XCode. Esto se puede hacer en Configuración de comstackción -> Firma -> Parámetros de configuración de firma de código.

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

    Intereting Posts