iOS ShareSDK接入及其填坑

前言

很多产品的设计的时候都加入了分享到第三方平台的功能,以便捷用户的操作和扩大产品的影响力范围。往往配置的平台不止一两个,去一个个下载官方SDK下来再去配置,工作量也是不少了。Mob平台下的ShareSDK产品就为了解决了这些问题,极大的方便了开发者在App中接入第三方平台。

为什么选择ShareSDK?

具体原因有以下几个:

  1. 支持40+主流社交平台。
  2. 需要处理的业务逻辑极大的减少了。
  3. 分享处理结果回调。
  4. 节省了开发者自己配置Universal Link的工作量,无需自己搭建服务器。

接入过程

  1. 官网账号注册、登录。
  2. 创建应用。
  3. 各个平台AppKey申请。参考文档
  4. 客户端接入。请参考文档, 这里不再赘述。
  5. 分享配置。
    主要配置的是Universal Link相关内容:

分享设置

如图所示,需要填上苹果开发账号Team ID、应用Bundle ID、以及申请到的QQ App ID,就会自动生成图中红框部分的内容。
红色框部分分别是需要我们在Xcode、微信开放平台、QQ互联平台需要配置的。

遇到的坑

1、分享PlatformType配置不正确

结果描述:
微信分享部分:分享给好友成功,分享到朋友圈失败。
问题处理:

分享函数

在调起分享函数的时候,需要传入一个platformType的字段,使用过官方SDK的时候,自然而然的想到的是SSDKPlatformTypeWechat。之前的问题代码如下:

分享到朋友圈会失败,并没有调起微信跳转,报错信息如下:

Error Domain=ShareSDKErrorDomain Code=200101 "(null)" UserInfo={error_code=200101, description=参数错误:text}

最后请教了官方技术支持后才定位到问题,这里需要传的是PlatformSubType,即SSDKPlatformSubTypeWechatSessionSSDKPlatformSubTypeWechatTimeline
这些都同属于SSDKPlatformType枚举类型,如果没有特殊说明,很难误用导致分享失败。

2、绿洲SDK 1.0.3不支持Bitcode

绿洲是微博去年8月份新出的产品,参考资料不多,只有一个官方发表的微博文档。

我们的项目开启了Bitcode进行编译优化,并且其他引用的Framework也都支持Bitcode,但是绿洲SDK不支持,最简便的处理方式就是将其关闭掉,不然在编译的时候会有错误:

编译出错

但是关掉Bitcode难免遗憾,于是便根据文档上留的联系方式联系了绿洲SDK的相关负责人,让他们重新打了一个SDK(1.0.4)出来,替换掉ShareSDK中的OasisSDK

虽然可以正常编译的,但在导出ipa包的时候出错了。


查看日志,发现是包含了x86_64框架:

x86_64是在模拟器上运行的框架,但是模拟器上也没法进行分享测试,移除掉不需要的框架。命令如下:

cd OasisSDK.framework
lipo -remove x86_64 OasisSDK -o OasisSDK

重新编译打包,完美解决!

参考资料

Apple Universal Link文档
URL Scheme和Universal Link的区别
苹果验证通用链接是否可用的网站

你可能感兴趣的:(iOS ShareSDK接入及其填坑)