2012-03-01 62 views
0

我已經從那裏 http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12 http://www.raywenderlich.com/3525/apple-push-notification-services-tutorial-part-2APNS設備令牌不符合生產證書

閱讀APNS射線的要命教程產生

我已經用開發證書實現了它們,每件事情都很好,但現在當我用生產證書實現它時,設備令牌已停止生成。我已經爲生產創建了新的App ID,並且還生成了新的生產推送SSL證書,並且我還創建了.pem文件,但是一些設備令牌沒有生成。指導我在這個因爲我卡在這裏,即使這個通知不被稱爲

- (void)application:(UIApplication*)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData*)deviceToken 
{ 
    NSString* oldToken = [dataModel deviceToken]; 

    NSString* newToken = [deviceToken description]; 
    newToken = [newToken stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]]; 
    newToken = [newToken stringByReplacingOccurrencesOfString:@" " withString:@""]; 

    NSLog(@"My token is: %@", newToken); 

    [dataModel setDeviceToken:newToken]; 
    [[NSNotificationCenter defaultCenter] postNotificationName:@"TokenRecieved" object:nil]; 

    if ([dataModel joinedChat] && ![newToken isEqualToString:oldToken]) 
    { 
     [self postUpdateRequest]; 
    } 
} 

PLZ。指導

回答

1

此類行爲的一個原因可能是您尚未將您的應用程序註冊到RemoteNotifications。要註冊apns,您需要在應用程序代理的didFinishLaunchingWithOptions方法中編寫以下代碼。

[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|UIRemoteNotificationTypeBadge ]; 

它會爲您的設備註冊徽章和警報類型的通知。要驗證應用程序是否已註冊,您可以在設置>通知>您的應用程序中使用這兩種通知類型,然後您的應用程序將準備好調用委託方法並接收通知(如果切換設置在)。

此外,如果您實施application:didFailToRegisterForRemoteNotificationsWithError:方法並記錄錯誤(如果有),將會有所幫助。

謝謝

+0

Thanx Ravin,但我已經添加該行「[應用程序registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge];」在didFinishLaunchingWithOptions之前,仍然沒有生成設備標記,並且關於日誌錯誤的第二點,你能否解釋一點,即如何記錄錯誤,同時我已經實現了應用程序:didFailToRegisterForRemoteNotificationsWithError:在我的應用程序中,但沒有任何想法記錄錯誤,plz。指南。 Thanx – 2012-03-02 11:19:50

+0

通過日誌錯誤的手段:如果您使用開發人員配置文件簽署應用程序然後NSLog它在控制檯上,以查看設備是否已註冊自己的遠程通知或不。但是,如果您使用分發配置文件簽署應用程序,然後使用警報。所以,基本上在這個代表中,你需要向用戶顯示一個警告,顯示該應用程序無法註冊apns。 – Ravin 2012-03-02 13:10:55

+0

Thanx Ravin我會做到這一點,但這不會解決問題,我真的想知道爲什麼應用程序不生成設備令牌或爲什麼應用程序沒有得到與分佈配置文件apns註冊,我從這個安靜卡住了很長現在的時間,有沒有解決辦法? – 2012-03-03 04:41:55

1

我剛纔有一個完全相同的問題。撥打registerForRemoteNotificationTypes後,即使撥打didFailToRegisterForRemoteNotificationsWithError也不會被呼叫。

我遇到並花費數小時才能發現的一個原因是我有一個與APN證書關聯的舊配置文件。我所需要做的就是重新創建(不僅是重新下載)供應配置文件以供生產,並重新安裝它們。

如果您在創建配置文件後創建了APN證書,則此步驟可能會對您有所幫助。