【事故原因】
MobLink SDK为了完成场景恢复功能,hook了
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url;
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(nullable NSString*)sourceApplication annotation:(id)annotation;
等Api的实现;而这些Api正是系统在其他App向我们App传递数据的时候的回调。hook了这些api直接导致了原有的SSO登录、分享回调等流程被破坏,无法完成相关流程。
【后续】
分析了MobLink的SDK接入文档等相关内容,MobLink自己实现了ShareSDK的授权、分享功能,如果完全接入现有的MobLink版本的SDK可以解决分享与三方授权等目前已知的相关问题,但是会导致App在应用间数据传递、通过Scheme打开App等场景和功能中很被动。