2013-10-12 137 views
4

我在iOS7中遇到了推送通知問題。推送通知不適用於iOS7,但它們適用於iOS6

我已經開發了iOS6的應用程序,並且推送通知工作得很好。但是,當我將該應用程序放入iOS7設備時,該程序無法運行。

但是,發生了一些非常奇怪的事情。如果我使用開發密鑰,我的iOS7設備可以接收推送,但使用生產密鑰,它不能。

我可以得到我的推送令牌,但它不能接收任何東西。

有什麼想法?

這是我的代碼:

Appdelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    // PUSH-CODE 
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound | UIRemoteNotificationTypeAlert)]; 
    .... 
} 

// PUSH-CODE 
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken 
{  
    NSString *token = [[deviceToken description] stringByTrimmingCharactersInSet:  [NSCharacterSet characterSetWithCharactersInString:@"<>"]]; 
    token = [token stringByReplacingOccurrencesOfString:@" " withString:@""]; 
    NSLog(@"Token: %@", token); 

    [[NSUserDefaults standardUserDefaults] setObject:token forKey:@"deviceToken"]; 
    [[NSUserDefaults standardUserDefaults] synchronize]; 
} 

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

您確定您使用的是正確的設備令牌嗎?請注意,當您使用沙箱供應配置文件爲您的應用程序簽名時,您將獲得與使用生產供應配置文件時所獲得的設備令牌不同的設備令牌。另外請注意,當您從iOS6切換到iOS7時,您的設備可能會有新的設備令牌(每次推送env)。 – Eran

+0

@Eran請檢查標題:「推送通知不能在iOS7中工作,但他們在iOS6中工作」,所以他的代碼是OK – 2013-10-24 22:02:40

+0

我有同樣的問題,任何人都可以弄明白嗎? – lorixx

回答

5

只是做了谷歌搜索「ios7推送通知不工作」,因爲你的問題是隻有3我已經知道了響應。這不是你的錯,而是蘋果的錯。用戶需要將他們的手機連接到iTunes以接收推送。有時會出現硬重置,有時只是關閉設備。

  • iOSX.0是「來測試它」
  • iOSX.1是「我們試圖修復了一些bug,根據您的火焰」
  • iOSX.2穩定,你可以自由地發展,無論如何在3個月我們有下一個X.0版本:)
0

我通過改變推送中心的應用程序的推動設置來解決這個問題。只需關閉然後打開

+3

需要更多的解釋,因爲你的答案看起來像一個評論。 – Pupil

+0

當InHouse部署工作正常時,我的設備無法獲得應用程序從應用程序下載的推送令牌。我不知道爲什麼。然後,我只需進入推送中心,關閉我們的應用程序的推送,退出並再次打開。令人驚訝的是,當我重新打開我們的應用程序時,推送令牌就在那裏。我認爲原因是有些事情之間沒有匹配 –

相關問題