react notification objective-c apple-push-notifications

objective c - notification - no se encuentra una cadena de autorización de ''aps-environment'' válida para la aplicación



push notifications ios react native (11)

El nuevo perfil de aprovisionamiento funcionó para mí. Asegúrese de utilizar un perfil de Desarrollador si está en desarrollo (no use Ad Hoc). Estuvo bien después de eso, ni idea de por qué el viejo dejó de funcionar bien.

Intento configurar mi aplicación para que admita la notificación push, pero continúo recibiendo este error: Error al obtener token, error: Dominio de error = NSCocoaErrorDomain Code = 3000 "no se encontró una cadena de autorización ''aps-environment'' válida para la aplicación" UserInfo = 0x1f818fc0 { NSLocalizedDescription = no se encuentra una cadena de autorización ''aps-environment'' válida para la aplicación}

  • Permití que mi aplicación admitiera notificaciones push (solo para desarrollo en este punto).
  • Creé el perfil de aprovisionamiento DESPUÉS de habilitar las notificaciones push.
  • El identificador de mi paquete es el mismo que aparece en el perfil.
  • En mi archivo de perfil hay una cadena: aps-environment
  • Me aseguré de que tanto en el proyecto como en el objetivo en la sección "Identidad de firma de código" TODOS los valores se seleccionen para ser mi perfil de aprovisionamiento.

¿Alguna idea más? Gracias.


El problema se debe 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 que borrará el error.


En mi caso, las cosas en mi perfil de aprovisionamiento:

security cms -D -i ~/Downloads/spolskyDevelop.mobileprovision ... <key>application-identifier</key> <string>P5GM95Q9VV.com.dca.spolsky</string> <key>aps-environment</key> <string>development</string>

Era diferente de las cosas en la aplicación que realmente se creó (puede averiguar dónde está construido mirando la pestaña Logs de Xcode)

codesign -d --entitlements - ''/Users/drew/Library/Developer/Xcode/DerivedData/spolsky-bdbtdfjeeywhqzccpmmceqvnhgtm/Build/Products/Debug-iphoneos/spolsky-ios.app'' <dict> <key>application-identifier</key> <string>Y2X6Z7Z2GR.com.dca.spolsky-ios</string> <key>get-task-allow</key> <true/> <key>keychain-access-groups</key> <array> <string>Y2X6Z7Z2GR.com.dca.spolsky-ios</string> </array> </dict>

Esto era cierto a pesar de que el texto de la sugerencia "Actualmente coincide" en Identidad de firma de código indicaba el perfil de aprovisionamiento correcto, raro, ¿eh? Para hacer una historia extraña más extraña, el perfil de aprovisionamiento correcto se estaba instalando en el dispositivo cuando ejecuté, (Configuración-> General-> Perfiles) lo que me llevó a creer que el perfil de aprovisionamiento era correcto, pero estaba volviendo a una ID de comodín. cuando la aplicación fue lanzada realmente.

La clave fue la diferencia en el resultado de estos dos comandos:

Y2X6Z7Z2GR .com.dca. spolsky-ios vs P5GM95Q9VV .com.dca. Spolsky

Cuando hice coincidir la parte en negrita, la parte en cursiva cambió para coincidir automáticamente. Además, el resultado de seguridad y el signo de código estaban de acuerdo, y no hubo más errores de aps-derecho.

Mi suposición aquí es que XCode estaba usando una coincidencia de estilo comodín en mi ID sin comodín. ("spolsky" es, después de todo, casi "spolsky-ios"), y esto explica el resultado "Actualmente coincidencias". Pero algo en la cadena de compilación es más estricto acerca de esto, por lo que recae en un ID de comodín real durante la compilación.


Me encontré con esto en lo que posiblemente sea un caso de uso no frecuente. Estoy trabajando con Xcode 6 y iOS 8. Estaba creando una serie de proyectos de aplicaciones totalmente nuevos e intentando volver a usar el mismo ID de paquete, para no tener que volver a pasar por la configuración del lado del portal. Esto también fue solo para pruebas de sandbox.

Me gustaría encontrar que, si bien la configuración y el registro funcionan bien para la primera aplicación, si eliminé esa aplicación del dispositivo, configuré el mismo ID de paquete para la segunda aplicación y luego intenté registrar las PN con esa aplicación, obtendría este error.

Mi solución fue:

  1. Elimine el perfil de aprovisionamiento asociado del dispositivo.
  2. Elimine el perfil de aprovisionamiento asociado de Xcode.
  3. Cerrar Xcode
  4. Haga doble clic en mi archivo .mobileprovision descargado para .mobileprovision a instalarlo en Xcode
  5. Abra el proyecto y despliéguelo.

Este enfoque parece desencadenar cualquier estado previo que haya, y puedo registrar PNs con la nueva aplicación / mismo ID de paquete.


Obtuve este error y no creé un nuevo perfil de aprovisionamiento. creó uno nuevo y luego tuvo que reiniciar xCode pero funciona ahora!


Para aquellos que obtuvieron este error en ios 10, puedes intentar seguir estos pasos:

1. limpiar su proyecto.
2.y marque Destinos -> Capacidades -> Notificación push. Si está desactivado, enciéndalo.

Y el problema se resolverá. Los pasos anteriores me ayudan a deshacerme de este problema. Espero que sea útil para alguien.


Producto-> Clean lo hizo por mí. Con suerte lo hace por alguien más.


Si este problema sucedió repentinamente después de actualizar a Xcode 8, es posible que encuentre una advertencia en la pantalla de capacidades que le permitirá corregirlo automáticamente:

Seleccione Proyecto> Objetivo> Capacidades> Activar notificaciones push


Solucioné este problema habilitando la capacidad de notificación de inserción.

Seleccione Proyecto> Objetivo> Capacidades> Activar notificaciones push


Tenga en cuenta que el identificador de paquete debe coincidir con el perfil de suministro de una manera que distinga entre mayúsculas y minúsculas . Tenía algo así como com.FirstLast.appname cuando debería haber sido com.firstlast.appname. Bueno, eso me mantuvo ocupado por bastante tiempo.


Tuve el mismo problema después de que las notificaciones automáticas ya estaban funcionando en mi dispositivo. Parecía que Xcode almacenaba en caché algo incorrectamente, así que refrescante solucionó mi problema:

  1. Xcode -> Preferencias -> Cuentas
  2. Ver detalles de su cuenta de desarrollador
  3. Simplemente haga clic en Actualizar para los perfiles de provisión varias veces. Estaba viendo estos cambios con cada actualización. Sigue refrescando hasta que dejen de cambiar.