集成L3VPN模式并使编译通过

  • ⚠️如果您没有运行过demo,强烈建议您阅读 <如何使用L3VPN模式demo>,以了解描述文件是否正确,以及了解如何对PacketTunnel.appex重签名

~一些前置XCode配置

  • 建议您选择手工方式管理描述文件(主要是让您确切的了解到当前使用的描述文件,以配合PackTunnel重签名)

  • 在Capabilities选项卡中,开启NetworkExtion功能,如果开启后报错,那么说明您的描述文件不正确,请检查。

  • 关闭bitcode功能,因为SDK不支持bitcode功能

  • Linker选项增加 "-ObjC",因为SDK中有OC的Category语法,只有添加该选项后,才能被正确加载

    (注意是大小写严格的 / 注意这里不能添加 “all_load” 选项,将会导致符号冲突)

  • ⚠️⚠️添加SDK需要的额外库 (这里一定要保证所有额外库都Link了,否则就会出现符号找不到的问题)

    库包括

    -------------------
    #需要额外导入的lib/framework
    NetworkExtention.framework
    MobileCoreService.framework
    CoreTelephony.framework
    SystemConfiguratiion.framwork
    AdSupport.framwork
    libresolv.8.tdb
    libsqlite3.0tdb
    libc++.tbd
    libxml2.tdb
    libicucore.tdb
    


~添加SDK到工程中

这一步将SDK集成到您的工程中

  • 首先 libs.zip解压,里面应该有如下文件

  • 将这几个文件拷贝到您的工程下,您可以新建一个文件夹SangforSdk放置这些内容,然后在XCode中引入这些文件

  • 检查下静态库是否已经导入

  • Embedded 扩展 PacketTunel

    扩展需要在此处导入

    导入后,再检查下Build Phases是否正确

~⚠️⚠️对PacketTunnel.appex进行重签名

注意此时PacketTunnel.appex的签名还是Sangfor的签名,需要您进行重新签名,签名的过程在文档<如何使用L3VPN的demo>中 <对PacketTunnel进行重签名> 一节,有详细说明

~尝试选择真机进行编译

选择真机或者Generic iOS Device进行编译并运行

(⚠️注意SDK是不支持模拟起的)

正常情况下,应该就可以编译通过了并且在真机上运行了,接下来就可以编写代码,将SDK用起来了,如果还遇到错误,请详细检查如上步骤、参考demo、或根据错误Google是不是通用XCode配置问题进行修改)