2012-09-28 12 views
6

Non sono attento e misco i token dispositivo di sandbox e di produzione nella stessa tabella db. Porta ad alcuni dispositivi che installano l'app di produzione non possono ricevere notifiche push.Come separare sandbox e dispositivo di produzione token di notifica APNS iOS

Come separare token di sandbox e token di produzione da db table? Il tuo aiuto è molto apprezzato !! Grazie!

+0

Ho risposto qui: http://stackoverflow.com/questions/10146911/determine-whether-app-is-communicating-with-apns-sandbox-or-production-environme – phatmann

risposta

6

Probabilmente dovresti digitare la tabella del database con una sorta di UDID (puoi crearlo da solo tagliando l'ID del bundle e l'indirizzo MAC del dispositivo) E un secondo campo che indica se il token è uno "sviluppo" o un token di "produzione". Il terzo campo può essere il token vero e proprio.

Nell'app delegato nel metodo delegato didRegisterForRemoteNotificationsWithDeviceToken è possibile aggiungere la logica per determinare se l'app è in esecuzione in modalità sviluppo vs produzione e aggiornare il database con il token dispositivo basato sull'UDID e la "modalità" in cui l'app è esecuzione in

il codice potrebbe essere simile alla seguente:.

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
{ 
// Update the device token record in our database 
#if !defined (CONFIGURATION_Distribution) 
    // Update the database with our development device token 
#endif 

#if defined (CONFIGURATION_Distribution) 
    // Update the database with our production device token 
#endif 
} 

per fare questo è necessario andare al vostro progetto -> Crea Impostazioni. Nella sezione Macro preprocessore digitare CONFIGURATION_ e premere Invio. Ciò dovrebbe creare una macro di preprocessore per ciascuna delle configurazioni di generazione. In questo caso le mie configurazioni di build sono AdHoc, Debug, Distribuzione e Release.

Crea CONFIGURATION_AdHoc, CONFIGURATION_Debug, CONFIGURATION_Distribution e CONFIGURATION_Release per me.

+0

Sarebbe bello poterlo dire solo dal codice, ma questo sembra forse l'unico modo per farlo. –

+0

Ad esempio, ho già un campo per uuid, più un campo che è il motore di notifica. Quindi per le build di debug dovrei impostare il motore di notifica su "applesand" o simile. –

+0

Il token del dispositivo di sviluppo e il token del dispositivo di produzione sono la stessa stringa? –

Problemi correlati