美文网首页
关于QQ互联SDK不支持i386的解决办法

关于QQ互联SDK不支持i386的解决办法

作者: AprSnow | 来源:发表于2016-12-06 17:20 被阅读229次

    问题

    使用2016-05-17更新的QQ互联SDK在使用模拟器运行是会出现以下报错:

    Undefined symbols for architecture i386:
      "_OBJC_CLASS_$_QQApiInterface", referenced from:
          objc-class-ref in ShareSDKManage.o
          objc-class-ref in UserLoginViewController.o
      "_OBJC_CLASS_$_TencentOAuth", referenced from:
          objc-class-ref in ShareSDKManage.o
    ld: symbol(s) not found for architecture i386
    

    包括使用ShareSDK、友盟社会化分享SDK等集成QQ互联的SDK。

    原因

    这是引文QQ互联的iOS_SDK_V3.1.0版本不支持i386.

    iOS_SDK_V3.1.0

    解决办法

    • 方法1

    不要在iphone5及以下的模拟器测试,可以在支持64位模拟器比如iphone5s及以上测试。不影响真机。
    同时,在TARGETS里面的设置如下:

    Xcode设置
    • 方法2

    使用lipo命令从旧库分离出i386部分,再合并到新库中去。

    这么做可能引起一些未知的风险,需要谨慎执行。
    由于公司的项目因为历史原因问题,不适合采用方法1,因此在充分考虑之后选择方法2.

    查看库支持架构:

    lipo -info TencentOpenAPI
    

    可以看到没有i386:

    Architectures in the fat file: TencentOpenAPI are: armv7 x86_64 arm64
    

    接下来,从旧库中抽离i386:

    lipo TencentOpenAPI -thin i386 -output TencentOpenAPI-i386
    

    把新生成的TencentOpenAPI-i386合并到新库中去:

    ipo -create TencentOpenAPI TencentOpenAPI-i386 -output TencentOpenAPI-new
    

    参考

    1. 关于最新版的腾讯的SDK不支持i386的问题解决方案

    相关文章

      网友评论

          本文标题:关于QQ互联SDK不支持i386的解决办法

          本文链接:https://www.haomeiwen.com/subject/udurmttx.html