2018-05-23

问题说明:使用友盟的各三方平台分享功能,微信登陆功能,统计功能,推送功能。集成之后发现一个奇葩的问题
操作流程:
 1.打开app 未登陆状态下:点击分享信息到微信朋友圈,分享成功之后,点击微信登陆。这时候会报错2001.无法获取到登陆信息。报错如下(报错信息1),关闭app之后 重新登陆,可以获取登陆信息一切正常。
2.打开app 直接使用微信登陆,然后点击分享到微信朋友圈。一切正常
3.以上问题只是在未登陆状态下,使用朋友圈的时候才会出现,若是未登陆状态下,分享到微信好友,QQ,空间,微博,等 分享之后再去登陆都是可以正常登陆的
报错信息1
2018-05-23 16:35:56 UShare(Error):[UMSocialManager:1015](iOS.6.8.2): UMeng提示助手编号[core_auth_error_4]:<未发现平台相应类:wxsession
请检查:
1、平台类已实现<UMSocialPlatformProvider>协议
2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 参考链接检查 https://at.umeng.com/mKfWve?cid=2723>
2018-05-23 16:35:56 UShare(Error):[UMSocialManager:477](iOS.6.8.2): UMeng提示助手编号[core_getuserinfo_error_1]:<未发现平台相应类:wxsession
请检查:
1、平台类已实现<UMSocialPlatformProvider>协议
2、此平台枚举值在正常枚举区间内,参考UMSocialPlatformConfig.h —> UMSocialPlatformType枚举。 参考链接检查 https://at.umeng.com/mKfWve?cid=2723>
2018-05-23 16:35:56.906924+0800 YunTui[21113:2357441] -[YTBaseWebViewController getAuthWithUserInfoFromWechat:withNonc:]_block_invoke [Line 321] ----- Error Domain=UMSocialPlatformErrorDomain Code=2001 "(null)" UserInfo={message=SDK Not Support, please check APP URL Scheme, and -ObjC flag in 'build setting', for more: http://dev.umeng.com/social/ios/quick-integration#2}
2018-05-23 16:36:01.247523+0800 YunTui[21113:2357441] UMLOG: beginbg id:17

这个问题确实够诡异的,开始并无从下手,因为获取微信登陆的信息,只有一个函数调用而已。那么只能从报错的信息入手了
文档报错信息描述:
UMSocialPlatformErrorType_NotSupport = 2001, // 不支持(url scheme 没配置,或者没有配置-ObjC, 或则SDK版本不支持或则客户端版本不支持)
然而这些检查一遍之后发现并没什么遗漏的,全部都配置了。然后就是排查原因:
1,使用友盟demo 调试一遍,按照上述未登陆状态下,先分享到朋友圈,然后再登陆的骚操作来一遍,验证一下是否这种操作能够正常,结果是正常的,然后找到其他的app 操作一遍发现这种操作是允许的。那么基本排除这种操作不允许的可能。
2。将SDK版本更新到最新状态,由于开始的时候使用的微信分享的是简版SDK ,更换到完整版的SDK。再操作问题依然会出现。
3.由于微信支付的是单独导入的SDK,和友盟的无关,但是这两个都包含同一个静态库。所以将微信支付的SDK删除,避免干扰。操作之后发现依然不成功。
4.查看集成代码,由于是自定义的多种分享面板,所以就会区分弹出哪一种面板的判断,然后发现,如果不弹出面板的话,直接将分享三方类型写成 朋友圈UMSocialPlatformType_WechatTimeLine。然后测试发现执行上述骚操作的话,就是正常的,竟然可以通过(说实话现在已经是第二天了,定位到这个问题,长长松了一口气,感觉已经看到胜利的曙光了,只要定位到问题,就解决了80%),然后就发现自定义的分享面板,首先调用UM的移除原来的分享平台,然后添加自己想要的分享平台。这个思路来自定义的分享面板。之前是完全没问题的,单步调试之后发现,每次经过这段代码之后,就会出现诡异的事情。(先分享朋友圈,再登陆,无法成功),然乎将代码改为全部调用友盟的分享平台。实验之后,直接成功。好了,问题解决。

注:问题定位在使用了自定义添加分享三方平台,而不是友盟提供的添加分享平台。描述不好说,上代码啦。

错误代码:
//添加自定义的平台
  [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_WechatSession
                                   withPlatformIcon:[UIImage imageNamed:@"umsocial_wechat"]
                                   withPlatformName:@"微信好友"];
  [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_WechatTimeLine
                                   withPlatformIcon:[UIImage imageNamed:@"umsocial_wechat_timeline"]
                                   withPlatformName:@"朋友圈"];
  [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_QQ
                                   withPlatformIcon:[UIImage imageNamed:@"umsocial_qq"]
                                   withPlatformName:@"QQ好友"];
  [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_Qzone
                                   withPlatformIcon:[UIImage imageNamed:@"umsocial_qzone"]
                                   withPlatformName:@"QQ空间"];
  [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_Sina
                                   withPlatformIcon:[UIImage imageNamed:@"sina_icon"]
                                   withPlatformName:@"新浪微博"];
  [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_WechatFavorite
                                   withPlatformIcon:[UIImage imageNamed:@"collect"]
                                   withPlatformName:@"收藏到微信"];
  [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_UserDefine_Begin + 1
                                   withPlatformIcon:[UIImage imageNamed:@"link_copy"]
                                   withPlatformName:@"复制链接"];
  [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_UserDefine_Begin + 2
                                   withPlatformIcon:[UIImage imageNamed:@"more_icon"]
                                   withPlatformName:@"更多"];
  
  //移除系统的平台。因为系统的默认时添加SDK 中包含的所有的平台
  [[UMSocialManager  defaultManager] removePlatformProviderWithPlatformTypes:@[@(UMSocialPlatformType_WechatSession),@(UMSocialPlatformType_WechatTimeLine),@(UMSocialPlatformType_QQ),@(UMSocialPlatformType_Qzone),@(UMSocialPlatformType_WechatFavorite),@(UMSocialPlatformType_Sina)]];
  [UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {
      UMSocialPlatformType platType = UMSocialPlatformType_UnKnown;
      if (platformType == UMSocialPlatformType_WechatTimeLine) {
          platType = UMSocialPlatformType_WechatTimeLine;
      }else if (platformType == UMSocialPlatformType_WechatSession){
          platType = UMSocialPlatformType_WechatSession;
      }else if (platformType == UMSocialPlatformType_QQ){
          platType = UMSocialPlatformType_QQ;
      }else if (platformType == UMSocialPlatformType_Qzone){
          platType = UMSocialPlatformType_Qzone;
      }else if (platformType == UMSocialPlatformType_Sina){
          platType = UMSocialPlatformType_Sina;
      }else if (platformType == UMSocialPlatformType_WechatFavorite){
          platType = UMSocialPlatformType_WechatFavorite;
      }else if (platformType == UMSocialPlatformType_UserDefine_Begin + 1){
          platType = UMSocialPlatformType_UserDefine_Begin + 1; //复制链接
          _indexType = 1;
      }else{
          platType = UMSocialPlatformType_UserDefine_Begin + 2; //系统
          _indexType = 2;
      }
      [self shareWebPageToPlatformType:platType andModel:model];
  }];

正确代码:
 [UMSocialUIManager setPreDefinePlatforms:@[@(UMSocialPlatformType_WechatSession),
                                               @(UMSocialPlatformType_WechatTimeLine),
                                               @(UMSocialPlatformType_WechatFavorite),
                                               @(UMSocialPlatformType_QQ),
                                               @(UMSocialPlatformType_Qzone),
                                               @(UMSocialPlatformType_Sina),
                                               @(UMSocialPlatformType_UserDefine_Begin+1),
                                               @(UMSocialPlatformType_UserDefine_Begin+2),
                                               ]];
    //设置分享面板的显示和隐藏的代理回调
    [UMSocialUIManager setShareMenuViewDelegate:self];
    
    [UMSocialUIManager removeAllCustomPlatformWithoutFilted];
    
    [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_UserDefine_Begin+1
                                     withPlatformIcon:[UIImage imageNamed:@"link_copy"]
                                     withPlatformName:@"复制链接"];
    [UMSocialUIManager addCustomPlatformWithoutFilted:UMSocialPlatformType_UserDefine_Begin+2
                                     withPlatformIcon:[UIImage imageNamed:@"more_icon"]
                                     withPlatformName:@"更多"];
    
    [UMSocialShareUIConfig shareInstance].sharePageGroupViewConfig.sharePageGroupViewPostionType = UMSocialSharePageGroupViewPositionType_Bottom;
    [UMSocialShareUIConfig shareInstance].sharePageScrollViewConfig.shareScrollViewPageItemStyleType = UMSocialPlatformItemViewBackgroudType_IconAndBGRadius;
    
    [UMSocialUIManager showShareMenuViewInWindowWithPlatformSelectionBlock:^(UMSocialPlatformType platformType, NSDictionary *userInfo) {
        if (platformType == UMSocialPlatformType_UserDefine_Begin+1) {
            NSLog(@"点击演示添加Icon后该做的操作");
            dispatch_async(dispatch_get_main_queue(), ^{
                _indexType = 1;
                if (self.sharesCustomBlock) {
                    self.sharesCustomBlock(_indexType);
                }
            });
        }else if (platformType == UMSocialPlatformType_UserDefine_Begin+2){
            [self shareToSysWithModel:self.shareModel];
        }else{
            [self shareWebPageToPlatformType:platformType andModel:model];
        }
    }];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,657评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,662评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,143评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,732评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,837评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,036评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,126评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,868评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,315评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,641评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,773评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,470评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,126评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,859评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,095评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,584评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,676评论 2 351

推荐阅读更多精彩内容

  • @导图郡主 @安明明0513 @我是李语昕 @双鱼座樱子2018 @随心随随萌 @Elaine-百合香的花园 @行...
    张露露子阅读 187评论 0 0
  • 元为仁,亨为礼,利为义,贞为正 补充一下,感觉贞是执行,行动派。 利是人情,以人员为本 礼是流程 元是创新
    陪Tim慢慢长大阿满阅读 55评论 0 0
  • 心血来潮买了个魔方玩,跟着教程做了两遍,用的层解法,挺有意思的,简单记录一下。以后有时间再研究吧。 F-前面顺时针...
    糖醋花生米阅读 4,189评论 0 2
  • 催眠是一件强大的工具但其究竟如何运作?真正的魔法是,催眠既是一支“魔杖”又是一个“积雪的雪球”。 让我们分别看看每...
    hypnotherapist阅读 286评论 0 0
  • 多少次深情地遥望我魂牵梦绕的故乡,那亮堂的红砖瓦房,那宽敞的院子,绿油油的菜园,一片树林就在我家的前方。最爱的,是...
    言行合一小号阅读 534评论 0 3