Estoy tratando de configurar mi aplicación para que admita notificaciones push, pero sigo recibiendo este error: No se pudo obtener el token, error: Error Domain = NSCocoaErrorDomain Code = 3000 "no se encontró una cadena de autorización válida 'aps-environment' para la aplicación" UserInfo = 0x1f818fc0 { NSLocalizedDescription = no se encontró una cadena de autorización válida 'aps-environment' para la aplicación}
- Permití que mi aplicación admita notificaciones push (solo para desarrollo en este momento).
- Creé el perfil de aprovisionamiento DESPUÉS de habilitar las notificaciones push.
- Mi identificador de 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 destino, en la sección "Identidad de firma de código", TODOS los valores estén seleccionados para ser mi perfil de aprovisionamiento.
¿Más ideas? Gracias.
Respuestas:
En mi caso, las cosas en mi perfil de aprovisionamiento:
Era diferente a las cosas de la aplicación que realmente se construyeron (puede averiguar dónde está construido mirando la pestaña Registros 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 "Coincide actualmente" en Identidad de firma de código indicaba el perfil de aprovisionamiento correcto. Es extraño, ¿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 recurriendo a una ID comodín. cuando se lanzó la aplicación .
La pista fue la diferencia en la salida de estos dos comandos:
Y2X6Z7Z2GR .com.dca. spolsky-ios frente a 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 la seguridad y el código de firma coincidieron, y no más errores de autorización de aps.
Supongo que XCode estaba usando una coincidencia de estilo comodín en mi ID no comodín. ("spolsky" es, después de todo, casi "spolsky-ios"), y esto explica la salida "Actualmente coincide". Pero algo en la cadena de compilación es más estricto al respecto, por lo que recurre a un ID comodín real durante la compilación.
fuente
El problema se debe a que el perfil de aprovisionamiento actual no contiene información de 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 para borrar el error.
fuente
Tuve el mismo problema después de que las notificaciones push ya estaban funcionando en mi dispositivo. Parecía que Xcode almacenaba en caché algo incorrectamente, por lo que la actualización solucionó mi problema:
fuente
recibí este error y no creé un nuevo perfil de aprovisionamiento; creó uno nuevo y luego tuvo que reiniciar xCode, ¡pero funciona ahora!
fuente
Tenga en cuenta que el identificador del paquete debe coincidir con el perfil de aprovisionamiento distinguiendo entre mayúsculas y minúsculas . Tenía algo como com.FirstLast.appname cuando debería haber sido com.firstlast.appname. Bueno, eso me mantuvo ocupado durante bastante tiempo.
fuente
Solucioné este problema habilitando la función de notificación automática.
Seleccione Proyecto> Destino> Capacidades> Activar notificaciones push
fuente
Si este problema ocurrió repentinamente después de actualizar a Xcode 8, es posible que encuentre una advertencia en la pantalla de capacidades que le permitirá solucionarlo automáticamente:
Seleccione Proyecto> Destino> Capacidades> Activar notificaciones push
fuente
Producto-> Clean lo hizo por mí. Ojalá lo haga por alguien más.
fuente
Me encontré con esto en lo que posiblemente sea un caso de uso poco frecuente. Estoy trabajando con Xcode 6 y iOS 8. Estaba creando una serie de proyectos de aplicaciones completamente nuevos e intentando reutilizar el mismo ID de paquete para no tener que volver a pasar por toda la configuración del portal. Esto también fue solo para pruebas de sandbox.
Descubriría que, si bien la configuración y el registro funcionarían 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 PN con esa aplicación, obtendría este error.
Mi solución fue:
.mobileprovision
archivo descargado para instalarlo de nuevo en XcodeEste enfoque parece perder el estado anterior que estaba allí, y puedo registrarme para PN con la nueva aplicación / el mismo ID de paquete.
fuente
Para aquellos que recibieron este error en ios 10, pueden intentar los siguientes pasos:
1.limpia tu proyecto.
2. y marque Objetivos -> Capacidades -> Notificación push. Si está desactivado, activado.
Y el problema se resolverá Los pasos anteriores me ayudan a deshacerme de este problema. Espero que sea de ayuda para alguien.
fuente
El nuevo perfil de aprovisionamiento funcionó para mí. Asegúrese de utilizar un perfil de desarrollador si está en desarrollo (no utilice Ad Hoc). Estuvo bien después de eso, no tengo idea de por qué el anterior dejó de funcionar bien.
fuente