development developer app ios objective-c xcode app-store push

ios - development - app store developer



No se ha encontrado una cadena de autorización ''aps-environment'' válida para la aplicación en la tienda de aplicaciones (9)

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 el sandbox-apn usando el perfil de desarrollo y las cosas funcionaron muy bien. Luego cambié las cosas al apn de producción y lo puse a prueba de vuelo, nuevamente las cosas funcionaron perfectamente. Una vez que puse la actualización en el mercado y la ejecuté, noté que no estaba recibiendo 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 Ina-touch-it coffco [1210]: Registrarse para notificaciones remotas
4 de diciembre 17:55:15 Ina-touch-it SpringBoard [52]: No se encontró una cadena de autorización ''aps-environment'' válida para la aplicación ''Dripper'': (nulo). Las notificaciones no serán entregadas.
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á mi id de 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


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

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


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. Crear el perfil de aprovisionamiento

( FCM no es un requisito previo para la notificación 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 para autorizar a sus dispositivos a ejecutar una aplicación que aún no se ha publicado en la App Store.

  1. Vaya al Centro de miembros para desarrolladores de Apple e inicie sesión.
  2. Vaya 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, luego haga clic en Continuar.
  7. Seleccione el certificado de desarrollo de iOS del 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 aprovisionamiento, 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 (por ejemplo, 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. Active las capacidades de notificación push

  1. Ir al editor del proyecto, del manual oficial
  2. En la sección de capacidades, Activar notificación push

Debe tener que habilitar Target—> capacidades—> notificación push. Me he enfrentado a este problema usando Xcode 8.


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

Sin embargo, he fallado una vez porque tenía dos cuentas de Apple conectadas. Después de quitar uno, todo comenzó a funcionar.


Me llevó un tiempo descubrir qué no causaba un error válido de autorización de entorno aps. El problema era que había dos archivos .entitlements en el proyecto XCode. Uno es plataforma / ios //. Derechos y otro es plataforma / ios // Recursos / .entitlements y los derechos apropiados están presentes en el archivo anterior 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 utiliza XCode. Esto se puede hacer en Configuración de compilación -> Firma -> Parámetros de configuración de los derechos 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 móvil híbrida cordova)? ¿Y cuál es la ubicación correcta para el archivo .entitlements?


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

Esto fue causado (aparentemente) por el 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 en inglés, la solución de Wei funcionó correctamente.



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 ''aps-environment'' válida para la aplicación"

Lo arreglé usando los pasos a continuación

  • He creado un nuevo perfil de aprovisionamiento para la identificación de la aplicación
  • lo agregó a xcode
  • proyecto Ir a Xcode "Preferencias"
  • 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á.


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 push, creo que también ha actualizado los certificados en llavero.