iOS中Network Extension安全科学Tunnel应用(Swift5)

本文介绍了如何在iOS中使用Network Extension和NEKit库创建一个安全的科学Tunnel应用。详细步骤包括创建工程、集成NEKit、配置VXN、监听网络状态变化以及UI实现。文中提供了Swift5的代码示例,并给出了调试和解决网络切换问题的方法。
摘要由CSDN通过智能技术生成

本文简要介绍iOS中Network Extension在提供安全科学(双s)使用G高级搜索、Y视频等App简单应用,同时使用了第三方库NEKit提供路由规则支持。

demo代码已适配swift5,点击GitHub链接查看。

demo运行需要有开发者账号,修改bundle id,在自己的开发者账号进行注册。

在创建应用之前我们需要安装NEProviderTargetTemplates.pkg,在xcode10.12之后苹果在xcode中删除了这个文件,为什么?可能和中国区被下架的那些VXN一样的原因吧。好在我们还可以从老版本的xcode中提取这个文件,链接在此点击下载 ,提取码:18ek,要低调,安装好后重启xcode。

创建工程

接下来我们开始创建工程,首先和创建普通App一样创建一个Project

创建好后我们在当前Project中创建一个Target

选择Network Extension,Next

语言选择swift,因为NEKit是swift写的,并且对oc支持不是很好,所以这里就用swift来写了。

创建好后,目录下会出现一个新的文件夹

有关代理的代码在PacketTunnelProvider.swift中编写。

在工程创建完毕后,需要在Target的Capabilities中开启Network Extensions和Personal VXN功能,注意项目本身主Target及PacketTunnel都需要开启这两项功能。

好了,到此工程就创建好了。

NEKit集成

由于项目中使用的NEKit这个第三方库只支持Carthage进行集成管理,所以demo使用的集成工具也是Carthage,没有用过的可以自行Google,安装使用难度不高,一看即会。

但是注意在第三方库编译的时候需要使用NEKit提供的编译方式,直接carthage update项目无法运行。

carthage update --no-use-binaries --platform mac,ios

第三方库编译好后会在Carthage目录下Build/iOS中生成.framework文件,我们需要把这些framework添加到项目中去,下图的两个位置都要需要添加,与Net无关的包在packetTunnel中可以不需要添加。

至此相关环境配置就已经搞定了,下面开始看代码如何建立VXN链接

创建VXN Manager

首先需要创建一个NETunnelProviderManager

fileprivate func createProviderManager() -> NETunnelProviderManager {
    let manager = NETunnelProviderManager()
    let conf = NETunnelProviderProtocol()
    conf.serverAddress = "BearFree"
    manager.protocolConfiguration = conf
    manager.localizedDescription = "BearFree"
    return manager
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值