【修复iOS WireGuard 集成到个人项目报错问题】

1、添加 Swift Package Dependenices 失败

  • 想要把 WireGuard 项目集成到个人项目中,按照官方的说法直接使用 Swift Package Dependencies,但是如果你的 Xcode
    是高级版本(15以上),那么当你把这https://git.zx2c4.com/wireguard-apple添加到Swift
    package后,会发现报错,添加不了
    在这里插入图片描述
    这是因为官方的 Swift Package 版本是 5.3

    而自身版本是 5.5 以上,如果还是一定要通过 Swift Package 来添加的话,就要把 Xcode 降级,但是我们基本不会这么做.

    那这个时候我们可以通过下载官方的包,然后把里面的 Package.swift 文件里面的// swift-tools-version: 5.3,修改成 5.5

    然后再通过 Swift Package 添加本地 Local 的方式把下载好的官方包给添加进去就可以
    在这里插入图片描述

    在这里插入图片描述

2、添加本地 local swift package 后运行报错

  • 那么添加 Swift Package 后呢,直接运行是会报错的,这个时候还需要添加另外两个 Target:

    1、Network Extension;2、External Build System

    如下图:
    在这里插入图片描述
    在这里插入图片描述
    这里的Directory 添加的是你本地 WireGuardKitGo 这个文件夹的路径(可自行添加到对应本项目的路径,然后使用$(PROJECT_DIR)来引用)

    完成这一步后基本操作就完成了,然后运行项目到真机,这次发现惊喜,成功了

    那么接下来就尝试一下调用相关 WireGuard 的内容,我尝试在PacketTunnelProvider里添加

    private lazy var adapter: WireGuardAdapter = {
         return WireGuardAdapter(with: self) { logLevel, message in
        
         }
    }()
    

    在这里插入图片描述

    运行后发现报错了:

    在这里插入图片描述

    这种报错,是Network Extension 这个 Target 没有添加到 WireGuard 框架

    那么我们就去相应的 Target 里检查一下,确保在 Link Binary with Libraries添加 WireGuard 这个框架

    注:想要在哪个 Target 使用 WireGuard 内容就在哪个 Target 里添加 WireGuard 框架

    在这里插入图片描述
    添加后运行,成功了,没有报错,
    到此就完成集成 WireGuard 框架到自己项目里了。

感谢各位看到最后,感觉不错希望能多支持关注一下,作者会持续更新更多分享,谢谢!

需要讨论可加V:Jun_Yeong-Huang

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值