前言
很多产品的设计的时候都加入了分享到第三方平台的功能,以便捷用户的操作和扩大产品的影响力范围。往往配置的平台不止一两个,去一个个下载官方SDK下来再去配置,工作量也是不少了。Mob平台下的ShareSDK
产品就为了解决了这些问题,极大的方便了开发者在App中接入第三方平台。
为什么选择ShareSDK?
具体原因有以下几个:
- 支持
40+
主流社交平台。 - 需要处理的业务逻辑极大的减少了。
- 分享处理结果回调。
- 节省了开发者自己配置
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
,即SSDKPlatformSubTypeWechatSession
和SSDKPlatformSubTypeWechatTimeline
。
这些都同属于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的区别
苹果验证通用链接是否可用的网站