安装swiftlint和go
brew install swiftlint go
下载主程序代码
git clone https://git.zx2c4.com/wireguard-apple
下载WireGuardKit代码
git clone https://git.zx2c4.com/wireguard-apple
将WireGuardKit作为Swift package添加到主程序代码中。Package.swift中paltforms改成platforms: [ .iOS("15") ],
删除主程序里的WireGuardKit,WireGuardKitC, WireGuardKitGo文件夹。后期编译遇到报错时,根据报错信息添加import引用代码即可。
确认WireGuardiOS的Target Dependencies是WireGuardNetworkExtensioniOS,并且Link Binary With Libraries是WireGuardKit和NetWorkExtension.framework。
确认WireGuardNetworkExtensioniOS的Target Dependencies是WireGuardGoBridgeiOS,并且Link Binary With Libraries是WireGuardKit, libwg-go.a, NetworkExtension.framework。
WireGuardGoBridgeiOS的Info里,Directory设置为WireGuardKit项目里的WireGuardKitGo文件夹。Build Tool确认是/usr/bin/make
WireGuardKitGo里的Makefile,REAL_GOROOT := $(shell go env GOROOT 2>/dev/null)这句话替换为REAL_GOROOT的绝对地址,例如改成REAL_GOROOT := "/opt/homebrew/Cellar/go/1.23.6/libexec" (查询具体值可以在命令行里运行go env GOROOT)
开源代码的原始英文文档 https://git.zx2c4.com/wireguard-apple/about/