2012-10-11 21 views
6

Publikuję wartości nazwy użytkownika, hasła i devicetoken do serwisu .net. Ale nie dostał żadnej wartości tokena urządzenia. Używam poniżej kodu.jak zdobyć token urządzenia?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    [[UIApplication sharedApplication] setApplicationIconBadgeNumber:0]; 
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeAlert ]; 
} 

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
{  
    NSLog(@"didRegisterForRemoteNotificationsWithDeviceToken: %@", deviceToken); 
    NSString *dt = [[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]]; 
    dt = [dt stringByReplacingOccurrencesOfString:@" " withString:@""]; 
    self.DeviceToken=dt; 
    NSLog(@"~~~~devToken(dv)=%@",deviceToken); 
} 

- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error 
{  
    NSLog(@"Failed to get token, error: %@", error); 
} 

Ale w konsoli pokazuje

Failed to get token, error: Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x1a0810 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application

jakiś pomysł? Z góry dziękuję!

Odpowiedz

1

Czy włączone powiadomienia push w pliku tymczasowego?

Przejdź przez the tutorial aby sprawdzić, czy masz zrobić prawo

Najpierw spróbuj wysłać powiadomienia push na urządzenia z komputerem Mac, jak wspomniano w tutorialu. Trzeba będzie plik PEM na stronie serwera, które są potrzebne, aby stworzyć z iOS Portal :)

+0

Witam Mam token urządzenia, ale nie udało się opublikować wartości w webservice.In konsoli pokazuje -JSONValue nie powiodło się. Śledzenie błędów: ( "Error Domain = org.brautaset.JSON.ErrorDomain Code = 3 \" Nierozpoznany znak wiodący \ "UserInfo = 0x15e880 {NSLocalizedDescription = Nierozpoznany główny znak} jaki jest problem? – fathik

1

Zakładam, że używasz/debugujesz na urządzeniu, ponieważ dostałeś inny błąd, próbując zarejestrować token z symulatora. Chciałem tylko usunąć to z drogi.

W związku z powyższym przyczyną zwykle występującego błędu jest to, że powiadomienia wypychane nie są włączone w wybranym profilu usługi administracyjnej. Teraz możesz wejść do portalu iOS Provisioning Portal i włączyć Push dla swojego identyfikatora aplikacji (zwróć też uwagę, że włączyłeś Push dla swojego profilu rozwoju lub dystrybucji). Jednak po wykonaniu tej czynności musisz wejść i "zabrudzić" profil obsługi dla portalu obsługi administracyjnej, aby wygenerować nowy profil obsługi administracyjnej, który zawiera uprawnienia do wypychania.

Przez "brudzenie" rozumiem wejście i zmianę niektórych ustawień profilu, aby wymusić ponowne utworzenie. Dowiesz się, czy "zabrudzisz" to wystarczająco, jeśli powrócisz do listy profili obsługi, status zmieni się tymczasowo na "Oczekujący" na kilka sekund, zanim ponownie stanie się "Aktywny" i pozwoli go pobrać.

Och, a ja po prostu znaleźć ten, który odpowiada również na pytanie (ktoś pomóc gdybym związane to źle proszę): Bundle Identifier and push certificate... aps-environment entitlement error

0
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
{  
    NSLog(@"didRegisterForRemoteNotificationsWithDeviceToken: %@", deviceToken); 
    NSString *dt = [[deviceToken description] stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]]; 
    dt = [dt stringByReplacingOccurrencesOfString:@" " withString:@""]; 
    self.DeviceToken=dt; 

} 
0

Aby otrzymać żeton urządzenia, aplikację uruchomić w urządzeniu.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 
    // Let the device know we want to receive push notifications 
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes: 
     (UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)]; 

    return YES; 
} 

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken 
{ 
    NSLog(@"My token is: %@", deviceToken); 
} 

- (void)application:(UIApplication*)application didFailToRegisterForRemoteNotificationsWithError:(NSError*)error 
{ 
    NSLog(@"Failed to get token, error: %@", error); 
} 
+0

Otrzymuję ten problem .. registerForRemoteNotificationTypes: nie jest obsługiwany w systemie iOS 8.0 i nowszych wersjach. – CAN

Powiązane problemy