史上最坑的证书报错解决方法:Code=3000 "未找到应用程序的“aps-environment”的权利字符串"

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了史上最坑的证书报错解决方法: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啦~

以上是关于史上最坑的证书报错解决方法:Code=3000 "未找到应用程序的“aps-environment”的权利字符串"的主要内容,如果未能解决你的问题,请参考以下文章

关于windowsnginx不能启动问题的解决,史上最坑系列之一(原文)

iPhone X 完美越狱 iOS 11.2.1...

iOS 史上最详细的app测试或者上架AppStore流程

史上最LOW的PHP连接池解决方案

小程序弹出层滚动穿透问题---史上最简单写法(附加解决方案)

这也许是史上最详尽的分库分表文章之一