史上最坑的证书报错解决方法:Code=3000 "未找到应用程序的“aps-environment”的权利字符串"
在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啦~