He estado intentando crear una aplicación de iOS simple y simple que pueda recibir notificaciones push. Mi única razón para hacerlo es establecer un procedimiento para que lo usen otros miembros del equipo, y no he podido encontrar una versión actualizada y funcional de tales instrucciones en otra parte de la web. Nuestra tienda es bastante nueva para el desarrollador de iOS, personalmente no tengo experiencia con el desarrollador de iOS y Xcode. He tropezado con decenas de tutoriales, artículos y publicaciones de problemas de Apple y otros lugares y siento que podría estar casi allí ...
Aquí es donde tengo que hacerlo (tenga en cuenta que estoy usando Xcode 4.3 y estoy tratando inicialmente de implementar solo en iOS 5.1, y deduzco que algunas cosas pueden haber cambiado recientemente en comparación con versiones anteriores de Xcode, pero nuevamente soy nuevo para todos esto, y encontrarlo completamente confuso y complicado):
1) Tengo un perfil de aprovisionamiento en mi iPhone que tiene habilitado Push
2) En mi proyecto Xcode de prueba, seleccioné ese perfil de aprovisionamiento como identidad de firma (en Configuración de compilación> Firma de código)
3) Tengo mi identificador de paquete en Resumen e información> Propiedades de destino de iOS personalizadas configuradas correctamente * (creo que ??)
4) Tengo que registrar registerForRemoteNotificationTypes en didFinishLaunchingWithOptions de mi delegado
5) Tengo didRegisterForRemoteNotificationsWithDeviceToken y didFailToRegisterForRemoteNotificationsWithError en mi delegado, configurado para registrar el token o error del dispositivo respectivamente
6) Tengo habilitados los derechos marcados en Resumen
7) Justo debajo de que el archivo de derechos seleccionado es Tinker6 (el nombre de mi proyecto de prueba), que se generó automáticamente cuando marqué Habilitar derechos
8) En el archivo Tinker6.entitlements tengo lo siguiente (que he recopilado es correcto en base a varias publicaciones diferentes en toda la web, pero que no puedo encontrar nada definitivo de Apple en sí):
Actualizado
9) Además, he intentado todo sin un archivo de derechos y obtengo esencialmente el mismo resultado.
10) El contenido de mi archivo de aprovisionamiento móvil incluye derechos correctamente (he codificado el número y el dominio pero estructuralmente el mismo):
<key>application-identifier</key>
<string>12355456A7.com.whatever.tinker</string>
<key>aps-environment</key>
<string>development</string>
<key>get-task-allow</key>
<true/>
<key>keychain-access-groups</key>
<array>
<string>12355456A7.*</string>
</array>
/ finaliza la actualización
Cuando intento ejecutar esto en mi dispositivo, aparece el siguiente error en la salida de Xcode:
2012-06-11 12:45:23.762 Tinker6[13332:707] Failed to get token, error:
Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment'
entitlement string found for application" UserInfo=0x24a3b0
{NSLocalizedDescription=no valid 'aps-environment' entitlement string
found for application}
He intentado establecer get-task-allow en NO, aps-environment en producción, las cuatro combinaciones posibles, lo mismo.
¿Cómo puedo superar esto? ¿Dónde está la documentación definitiva sobre esto?
- Siguen más antecedentes -
* En cuanto a la identificación del paquete, todavía no tengo claro cómo se debe establecer en relación con los ID de aplicaciones y los ID de perfil en el perfil de aprovisionamiento. En el portal de aprovisionamiento en App Ids tengo esto (nuevamente, codifiqué el número y el dominio):
Y la identificación del paquete de dos lugares está configurada. Tengo esto:
No estoy del todo seguro de que estos sean correctos o de si uno o ambos deben establecerse en 12355456A7.com.whatever.tinker, aunque los he intentado anteriormente en el proceso sin éxito ...
Tenga en cuenta que hay muchas publicaciones con títulos similares, sin embargo, todas parecen estar desactualizadas en función de los nombres de archivo y demás, y el hecho de que ninguna de las soluciones parece ser útil. Espero que el mayor nivel de detalle que he dado garantice una respuesta de calidad. Probablemente asignaré una recompensa lo antes posible y si da una respuesta de alta calidad que conduzca a una solución, le otorgaré la recompensa y promocionaré su respuesta a través de Twitter y mi blog. Especialmente si publica una publicación cruzada realmente buena "aquí están los 500 pasos exactos que necesita para que una aplicación de notificación push simple funcione, incluido el aprovisionamiento y cualquier otra cosa" en su blog o lo que sea.