最近压力真是好大,好多东西都是第一次做。这几天在搞一个推送的东西,用的友盟。其实官方文档介绍的挺详细的。
由于我是要修改之前存在的bug,只是扫了扫,并木有整代码。不过第一步获取deviceToken就让我蛋疼不已。在
didFailToRegisterForRemoteNotificationsWithError这个回调中,我见到了这个Code=3000的错误。推送必须真机+证书,证书也是近几天接触的,也不是很理解,这下可好啦,一下子来了这么个复杂的问题,让我几乎崩溃。工作还是要继续的,于是查了各种解决方案,就在刚刚终于给推送成功了。加上最近刚换的工作,诸多不顺,差点没哭出来。
下面是我的问题存在以及解决的方案:
1.只有两张证书,缺少了push证书;
2.这个是最要名的,profile的bundle一定一定不要是*,而且在项目的Bundle Identity 配置中一定要和profile的bundle一致。
这两个解决了就会发现地球又转了起来。
顺便总结下证书方面:
真机调试不是随便一个机器就可以的。你需要告诉乔帮主,要在哪台电脑上在哪台移动设备上为哪个程序做调试。
前提:为应用建立一个APPID,这个后面都要用到;注册Device;
1、结合APPID+CSR(本机KeyChain create 包含了本mac的一些信息)------->生成一个证书,这个是需要本地mac用的,用来说明在这台mac上对这个(APPID)App进行真机调试;
2、APPID+上面步骤中生成的证书+注册的Device------>生成profile文件,这个是随程序安装到移动设备上的,用来说明在这台移动设备(Device)上通过这个Mac运行(1步骤中的证书)的这个App(APPID)才能进行真机运行。
其实我没实际操作过,因为没设备和账号,仅是说明下证书的作用有个大致的了解。