2010-02-01 7 views
4

J'essaye d'employer l'exemple d'application de serveur d'APN de PushMeBaby pour envoyer des notifications de poussée à mon appareil. J'ai une application de distribution adhoc. Pour mon ID d'application, j'ai créé les deux certificats SSL pour le développement et la production. Il semble ne pas envoyer les notifications push de l'application PushMeBaby, je alread installé Poussez des certificats SSL à la chaîne d'outils .. encore semble ne fonctionne pas ..Comment utiliser l'exemple PushMeBaby pour envoyer des notifications push Apple?

2010-02-01 07:20:49.578 PushMeBaby[7193:a0f] MakeServerConnection(): 0 
2010-02-01 07:20:49.613 PushMeBaby[7193:a0f] SSLNewContext(): 0 
2010-02-01 07:20:49.614 PushMeBaby[7193:a0f] SSLSetIOFuncs(): 0 
2010-02-01 07:20:49.614 PushMeBaby[7193:a0f] SSLSetConnection(): 0 
2010-02-01 07:20:49.615 PushMeBaby[7193:a0f] SSLSetPeerDomainName(): 0 
2010-02-01 07:20:49.631 PushMeBaby[7193:a0f] SecKeychainOpen(): 0 
2010-02-01 07:20:49.648 PushMeBaby[7193:a0f] SecCertificateCreateFromData(): 0 
2010-02-01 07:20:49.655 PushMeBaby[7193:a0f] SecIdentityCreateWithCertificate(): 0 
2010-02-01 07:20:49.656 PushMeBaby[7193:a0f] SSLSetCertificate(): 0 
2010-02-01 07:20:52.353 PushMeBaby[7193:a0f] SSLHandshake(): 0 
2010-02-01 07:20:57.954 PushMeBaby[7193:a0f] SSLWrite(): 0 144 

ci-dessus est le journal de PusheBaby application Xcode.

+0

Besoin de plus d'informations pour aider, comme le code pertinent de votre application, etc –

+0

S'il vous plaît poster une réponse si vous avez résolu problème ci-dessus. Face au même problème. – Mahesh

Répondre

10

OK - Compris cela.

Le jeton d'appareil que je passais (que j'ai reçu d'UrbanAirship) n'avait pas d'espace. J'ai utilisé le jeton d'appareil de la console de l'application iPhone pour ce super tutoriel (http://mobiforge.com/developing/story/programming-apple-push-notification-services) qui a des espaces entre chaque 8 caractères de la chaîne. Cela a fait l'affaire.

Le jeton de l'appareil devrait ressembler à ceci - 38c866dd bb323b39 ffa73487 5e157ee5 a85e0b7c e90d56e9 fe145bcc 6c2c594b

plus tard - quand vous regardez le NSLog de PushMeBaby - vous verrez le comte « traités » dans l'appel SSLWrite a augmenté de 1 (le mien est passé de 104 à 105) par exemple 2011-04-28 11: 21: 41,543 PushMeBaby [49218: 903] SSLWrite(): 0 105

Hope this helps quelqu'un d'autre qui se débattait comme moi jours ...

+0

** Merci pour la réponse mate. ** Je suis passé à une alternative Java dans le côté serveur enfin. Cela pourrait aider un autre gars. –

+0

Utilisez [this] (https: // github.com/jlott1/PushMeBaby-OneMoreTime) au lieu de "Pushmebaby", qui n'a pas besoin d'ajouter de l'espace manuellement. – Gon

0

Juste pensé que j'ajouterais mes deux cents ici depuis que cela m'a eu aussi. Si vous avez réalisé que le jeton de l'appareil aurait dû des espaces, de ne jamais avoir ce problème à nouveau remplacer cette section de code:

// Validate input. 
    if(self.deviceToken == nil || self.payload == nil) { 
     return; 
    } 

avec ceci:

// Validate input. 
    if(self.deviceToken == nil || self.payload == nil) { 
     return; 
    } 
    else if(![self.deviceToken rangeOfString:@" "].length) 
    { 
     //put in spaces in device token 
     NSMutableString* tempString = [NSMutableString stringWithString:self.deviceToken]; 
     int offset = 0; 
     for(int i = 0; i < tempString.length; i++) 
     { 
      if(i%8 == 0 && i != 0 && i+offset < tempString.length-1) 
      { 
       //NSLog(@"i = %d + offset[%d] = %d", i, offset, i+offset); 
       [tempString insertString:@" " atIndex:i+offset]; 
       offset++; 
      } 
     } 
     NSLog(@" device token string after adding spaces = '%@'", tempString); 
     self.deviceToken = tempString; 
    } 
0

oui pour moi Poussez bébé le jeton de l'appareil devrait être

45f62964 06523099 b66017f7 0eb3ea7d 14140c11 af6f14a0 c24145d1 90005763 

not 
<45f62964 06523099 b66017f7 0eb3ea7d 14140c11 af6f14a0 c24145d1 90005763> 
or 
45f6296406523099b66017f70eb3ea7d14140c11af6f14a0c24145d190005f9c 

si vous incluez le <> il va dans une boucle infinie dans un NSScanner

Bien qu'officiellement le jeton de l'appareil devrait inclure <> et des espaces comme est ce que vous obtenez lorsque vous RegisterDevice si vous l'utilisez dans d'autres applications telles que APN TESTEUR sur MAC APP STORE

<45f62964 06523099 b66017f7 0eb3ea7d 14140c11 af6f14a0 c24145d1 90005763> 
0

ajouter ceci avant

// Convert string into device token data. 

à -(IBAction)push:(id)sender; dans ApplicationDelegate.h.

if (![self.deviceToken rangeOfString:@" "].length) { 
    NSMutableString *string = [self.deviceToken mutableCopy]; 
    for (int i = 8; i < string.length; i+=8) { 
     [string insertString:@" " atIndex:i]; 
    } 
    self.deviceToken = string; 
} 

Et maintenant vous est supporté le format "spaceless".

Questions connexes