swift项目集成QQ 3.5.5SDK遇到的问题

简介

  QQ分享我一直用的是TencentOpenAPI的1.0.0版本,满足分享的一切需求,但是有备案的小伙伴告诉我,备案检测中发现了UIWebView控件,什么Webview组件跨域访问风险巴拉巴拉一大堆,无法过审;在规定的期限内必须替换为WKWebView。UIWebView这么过时的控件,项目中没用啊,我用Hopper检测了一下我的项目,发现时QQ分享用的1.0.0版本,其中包含了UIWebView,没办法了只能升级最新的QQ分享SDK吧。

1.进入QQ开发平台

  查看最新的版本是3.5.7,但是该版本不支持pod,果断放弃;看了一下其它版本,在cocopods官网搜一下,有没有对应的版本,有就证明该版本支持pod;最后发现3.5.5版本支持pod,那果断开启so easy的旅程。

2.pod新SDK

  2.1在项目pod的配置文件Podfile中加入:

pod 'TencentOpenAPI_iOS_V3', '~> 3.5.5' # QQ分享

  2.2报错
  引入3.5.5后,在桥接文件中引入.h文件报错,如下图:


456.jpg

  发现SDK文件中包含module.modulemap文件,是不是可以直接引入啊,试了一下报错如下:


78.png

  从来没有遇到过这种情况?于是去百度,去StackOverflow,没有找到答案,那就去看一下SDK的module.modulemap文件吧。
  寻找步骤:SDK包 -> Frameworks -> TencentOpenAPI -> show in finder -> Headers -> module.modulemap -> 打开module.modulemap文件,进行修改。
  3.5.5的module.modulemap文件内容如下:
module TencentOpenApi{
    umbrella header "TencentOpenApiUmbrellaHeader.h"
    export *
}

修改为下面内容:

framework module TencentOpenAPI {
  header "QQApiInterface.h"
  header "QQApiInterfaceObject.h"
  header "TencentOAuth.h"
  header "TencentOpenApiUmbrellaHeader.h"
  header "sdkdef.h"

  export *
}

  修改后,在桥接文件中引入需要的.h文件即可,继续编译,运行成功,完事了。

参考文章:《Swift 关于 module.modulemap 使用》

你可能感兴趣的:(swift项目集成QQ 3.5.5SDK遇到的问题)