先吐槽下Oauth,如果想把各家社交网站的登陆功能集成到一起,必须用各家的SDK,这会使得你的程序莫名的变大,牺牲了一定的用户体验,也缺乏代码后续的可维护性。
我帮着同事看看google+的SDK,结果由于自己太水,反而拖了同事的后退,在这里说声sorry,深深自责下。
当你在google开发者账号中设置了给iOS App使用的client ID时,google给你分配了一个client ID,自己添加一个bundle ID,好了,你只需要这两个东西。
然后回到代码里面,在viewDidLoad里面给单例赋clientID,实现代理,确定scope什么的我就不说了,添加framework也是把核心的framework加上就好,这些跟着官方文档做就ok,我就是想强调下URL Type的设置问题,这是本文的关键:
identifier,URL Schemes,和项目的bundle identifier必须一致;同时,必须是有至少二级命名,如com.example等,能多不能少,否则会报登陆错误,基本没可能发现。
这个问题在SDK1.5.0和1.4.1都有,不知道是不是bug
顺便说下,1.5.0不支持ios5,所以想兼容1代ipad的同学最高只能用1.4.1 ——当然,可以在Xcode5上运行。