原文地址:原文地址
注冊遠(yuǎn)程通知獲取設(shè)備令牌Token
//注冊遠(yuǎn)程通知獲取設(shè)備令牌Token
[[UIApplicationsharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge |
UIRemoteNotificationTypeSound |
UIRemoteNotificationTypeAlert)];
莫名奇妙的總是會走這個錯誤的委托,遠(yuǎn)程通知注冊失敗委托
-(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
{
NSLog(@"%@",error);
}
錯誤信息
然后輸出的error就是error : Error Domain=NSCocoaErrorDomain Code=3000 "未找到應(yīng)用程序的“aps-environment”的權(quán)利字符串" UserInfo=0x1187ad0 {NSLocalizedDescription=未找到\345\272\224用程序的“aps-environment”的權(quán)利字符串
尋找解決辦法
這時候急了,各種百度男摧,谷歌蔬墩,找出來一大堆解決方法,什么appid不一致呀耗拓,什么證書生成順序不一致呀拇颅,什么xcode的code signing沒有配置呀,這些方法我都試了個遍……結(jié)果還是沒有成功乔询。這里主要說一種網(wǎng)上從未出現(xiàn)過得錯誤……………………
至于上面那些常見的錯誤大家可以百度搜到一大推樟插,而且都是大同小異,由于過于繁長,這里不做累述黄锤。本文主要適用于那些試過各種解決方案仍不生效的開發(fā)者們最后的希望……
發(fā)現(xiàn)問題 : bundle id 的問題
當(dāng)一切的證書全部到位搪缨,appid一致,先生成push證書再生成project證書鸵熟,然后xcde的code sign也配置好還是沒有生效的時候副编,這個時候就應(yīng)該檢查一下你的應(yīng)用的bundle identifier了
看到?jīng)]有,后面那個灰色是修改不了的流强,這是因為你的應(yīng)用在創(chuàng)建的時候設(shè)置了product name部分痹届,所以如果你的appid只與前面部分是一致是不行了,必須要這整個的bundle identifier與你的證書appid一致打月,那如何刪掉這后面灰色的不可編輯的部分呢队腐?只需要點擊summary旁邊的info就可以了。
在這里修改bundle identifier去掉后面那個動態(tài)參數(shù)就行奏篙。
ok柴淘,這時候你的項目完整的bundle identifier就與證書的aphid一致咯。跑起來 就可以看到這個token啦~