我原本已经有成功安装一个push证书,并且正常使用。
可是当我有需求需要更换另外一个push证书的时候,问题出现了。
我的操作是这样:
我直接到苹果官网,登录我的开发者账号,然后重新创建了一个App IDs,然后根据App IDs 创建了一个新的Provisioning,然后我在xcode的Organizer界面刷新了一下,然后新的证书就出现了。
这个时候我连接上我的设备,然后将我新创建的证书拖拉到设备里。然后我更改了xcode里面的Code Sigining的证书选择以及.plist文件中的Bundle identifier.此时运行,发现没报错,但是当我获取设备号的时候,就一直提示
Code=3000 "未找到应用程序的“aps-environment”的权利字符串" 这个错误
然后我开始根据这个错误搜索一些解决方案。很多说重启设备,重启xcode的方法试过,完全没用。中间折腾很多次,最后成功,成功的操作是这样:
首先把设备里面有push的证书删除,然后去苹果官网重新创建一个Provisioning,然后加入设备,把xcode里面的相关证书以及identifiter修改成你现在的证书,然后关掉xcode。注意,这里的关闭是需要结束进程的。
重启后,运行,发现有一个错误
Code Sign error: Provisioning profile ‘XXXX’ can't be found
解决这个错误的操作是如下:
1.完全关闭xcode,找到项目文件XXXX.xcodeproj ,右键,显示包内容。重新打开一个文件夹
2.打开该文件夹里面的project.pbxproj,并且在这找到你之前证书的编码信息,例如报错是:
Code Sign error: Provisioning profile '37D44E7F-0339-4277-9A82-C146A944CD46',所以我用查找的方式找到了所有包括37D44E7F-0339-4277-9A82-C146A944CD46的行,并且删除
然后重启xcode,再运行,就成功了。
这里有点得注意,所谓push证书,跟普通证书的不同在于,它激活了push功能。这个push功能需要你从钥匙串里面请求一个证书,然后导出,最后上传到苹果官网,然后才可以激活。这里不详细描述了。push证书的identifiter的不能带.*