在ios注冊遠程通知獲取設備令牌token的時候
// 注冊遠程通知獲取設備令牌 toKen
[[ UIApplication sharedApplication ] registerForRemoteNotificationTypes :(UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound |UIRemoteNotificationTypeAlert )];
莫名奇妙的總是會走這個錯誤的委托
// 遠程通知注冊失敗委托
-( void )application:( UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:( NSError *)error
{
NSLog ( @"%@" ,error);
}
然后輸出的error就是 error : Error Domain=NSCocoaErrorDomain Code=3000 "未找到應用程序的“aps-environment”的權利字符串" UserInfo=0x1187ad0 {NSLocalizedDescription=未找到\345\272\224用程序的“aps-environment”的權利字符串
這時候急了,各種百度,谷歌,找出來一大堆解決方法,什么appid不一致呀,什么證書生成順序不一致呀,什么xcode的code signing沒有配置呀,這些方法我都試了個遍……結果還是沒有成功。這里主要說一種網上從未出現過得錯誤……………………
至於上面那些常見的錯誤大家可以百度搜到一大推,而且都是大同小異,由於過於繁長,這里不做累述。本文主要適用於那些試過各種解決方案仍不生效的開發者們最后的希望……
當一切的證書全部到位,appid一致,先生成push證書再生成 project證書,然后xcde的code sign也配置好還是沒有生效的時候,這個時候就應該檢查一下你的應用的bundle identifier了
看到沒有,后面那個灰色是修改不了的,這是因為你的應用在創建的時候設置了product name部分,所以如果你的appid只與前面部分是一致是不行了,必須要這整個的 bundle identifier與你的證書appid一致,那如何刪掉這后面灰色的不可編輯的部分呢?只需要點擊summary旁邊的info就可以了。
在這里修改 bundle identifier去掉后面那個動態參數就行。
ok,這時候你的項目完整的bundle identifier就與證書的aphid一致咯。跑起來 就可以看到這個token啦~