智慧服务,成就美好体验 项目咨询

主页 > 服务与支持 > 开发平台 > 客户端SDK参考 > iOS Native SDK > 常见问题 集成第三方平台组件出现业务异常 更新时间: 2019/10/29 GMT+08:00

入门使用

集成第三方平台组件出现业务异常 更新时间: 2019/10/29 GMT+08:00

更新时间:2019-11-20

现象描述

开发者在集成华为提供的iOS SDK进行开发应用程序时,还引用了第三方平台组件提供的SDK,应用程序运行时出现业务异常(此异常不可预知,可能出现在第三方平台组件业务调用过程,也可能出现在华为iOS SDK业务调用过程)。

可能原因

华为提供的iOS SDK与第三方平台组件提供的SDK均引用了相同的"第三方开源软件",但版本不一致,iOS系统在编译开发者的应用程序时,无法为“华为提供的iOS SDK”和“第三方平台组件提供的SDK”编译加载所需要的“符号”,从而引起业务异常。

其中,较常见的引起问题的第三方开源软件是openssl组件,当前华为提供的iOS SDK引用的openssl版本为“1.0.2p”。

处理方法

说明: 

因此问题为iOS平台的机制引起的,如下“处理方式”只是“尝试”解决上述现象对应的问题,并不保证完全解决,或解决后无风险。

  1. 若第三方提供的是*.a静态库,则可在应用程序的工程目录下搜索排查,若如出现重复的* .a 静态库,则需要工程目录下删除重复的静态库(具体删除哪个静态库,需要根据删除后进行测试验证结果最终确定),并在“ Build Phases ->Link Blnary With Librarles”中删除对应的依赖。
  2. 若第三方提供的是*.framework,则根据第三方SDK提供方使用的“第三方开源软件”列表,与华为提供的“第三方开源软件”列表进行对比,排查出可能冲突的“第三方开源软件”。可“尝试”删除华为SDK软件包中“第三方开源软件”对应的*.a静态库,进行测试验证,若无法通过测试,则需要第三方提供的*.framework中在打包时,排除对“第三方开源软件”的打包(毕竟在iOS机制下,对“第三方开源软件”打包必然存在“符号冲突”问题)后,再使用“步骤1”进行处理。