在ios注册推送服务的过程中,出现如下错误:
Error Domain=NSCocoaErrorDomain Code=3000 "未找到应用程序的“aps-environment”的授权字符串" UserInfo=0x170e6fdc0 {NSLocalizedDescription=未找到应用程序的“aps-environment”的授权字符串}--
1. 证书问题
- 证书未正确生成,要先确保App IDs的推送使能Push Notifications是Enabled;
- 生成开发环境APNs Development iOS或生产环境APNs Production iOS的推送证书,正确制作.p12文件;
-
要确保Provisioning Profiles是设置过App IDs和生成推送证书后更新过的,下载最新的Profiles文件。
还有一种是出现钥匙串访问里面,出现多个类似证书,把无用的删除掉,即可。我的项目就是这个原因。
2. 项目问题
工程-TARGETS-General->Bundle Identifier要和证书上的一致;
-
工程-TARGETS-General-> Team要选中app所用的证书;
注册DeviceToken时要将代码放在AppDelegate.swift文件didFinishLaunchingWithOptions内;
-
要区分iOS8前和iOS8之后的注册方法;
-
监听注册结果(成功/失败)。
3.Xcode问题
- Xcode7使用推送,可能要打开手动设置一下。工程-TARGETS-Capabilities,里面列举多个Apple服务功能项,找到Push Notifications设置开启:ON。
- Xcode 6.4 是没有Push Notifications 这个选项的,因此可以不用管。
如果以上的方法都不能解决,可以尝试删除重新生成安装证书。