【最新 iOS VPN 之 WireGuard for iOS 安装构建 修复报错】

最新 iOS VPN 之 WireGuard for iOS 安装构建 修复报错

前言

在开发 WireGuard 的 iOS 版时,相信很多人都会遇到报错,在官方Github:https://github.com/WireGuard/wireguard-apple上,克隆:

git clone https://git.zx2c4.com/wireguard-apple

步骤:
在这里插入图片描述

然后按照官方给出的步骤执行后,再运行时发现报错。

废话少说,直接演示官方代码步骤。

作者的运行环境:

  • Mac 系统:macOS Sonoma 14.2.1
  • Xcode 版本:Version 15.2 (15C500b)

官方项目使用

  1. 克隆完项目cd wireguard-apple后 ,这里修改Developer.xcconfig里面信息的话,建议使用
    Xcode 打开来修改填写 Team IDBundle ID

在这里插入图片描述

  • 注意这里很多人没怎么使用过 Developer.xcconfig 的话,都会保留<>括号,但这不用保留,直接填写,假如

    team_id:3FJEf9Jfmf,那么:DEVELOPMENT_TEAM = 3FJEf9Jfmf

    这项目包含了 mac 端代码的,但是如果只要 iOS 端的话,这里 bundle id 只写 APP_ID_IOS 就可以

  1. 继续根据官方步骤:

brew install swiftlint go

如果自己电脑没有安装,则命令行执行;已安装跳过这步,然后直接打开项目open WireGuard.xcodeproj,真机运行(这项目只能真机运行,模拟器不可以

  • 运行后会发现报错:
    在这里插入图片描述
    这个报错基本上都是报错 WireGuardGoBridgeiOS 这个 Target在这里插入图片描述

  • 这是因为这个Target 是 External Build System,是一种构建目标类型,允许你使用非 Xcode的构建工具或脚本来构建项目。与 Xcode 内置的构建系统不同,External Build System目标让开发者可以集成和调用外部工具,如 make、CMake、SCons 等,而不是使用 Xcode 的默认编译器和构建流程

  • 而我们这个项目是用到了目录里面的 WireGuardKitGo 里的 Makefile脚本在这里插入图片描述
    在这里插入图片描述

  • 然后回到上面的报错信息

[ -n “” ] make: ***
[/Users/jerry/Library/Developer/Xcode/DerivedData/WireGuard-frbbjbescmfjdbfurhvpfkfivvjk/Build/Intermediates.noindex/WireGuard.build/Debug-iphoneos/wireguard-go-bridge/goroot/.prepared]
Error 1 Command ExternalBuildToolExecution failed with a nonzero exit
code

  • 这里的意思是 Makefile 里面的这个 REAL_GOROOT 里地址是空的。
    在这里插入图片描述

    可以搜一下

    /Users/jerry/Library/Developer/Xcode/DerivedData/WireGuard-frbbjbescmfjdbfurhvpfkfivvjk/Build/Intermediates.noindex/WireGuard.build/Debug-iphoneos/wireguard-go-bridge/goroot/.prepared

    这个路径下,是否存在里面内容,你会发现根本不存在(以上路径根据自己电脑自行输入对应的路径)

    可以用命令行输出一下GOROOT 在自己电脑的位置

    go env GOROOT

    在这里插入图片描述

    打印真实GOROOT路径/opt/homebrew/Cellar/go/1.23.1/libexec
    根据你自己的GOROOT 路径,然后修改一下 MakefileREAL_GOROOT 路径作为默认路径

    REAL_GOROOT := $(shell go env GOROOT 2>/dev/null || echo "/opt/homebrew/Cellar/go/1.23.1/libexec")
    

    如下图:
    在这里插入图片描述

完成以上步骤,然后再编译一下,就可以通过了。

总结

  • 基本上就是自身电脑的 GOROOT 路径问题,查看自己电脑的 GOROOT 路径,修改一下Makefile 文件就可以。如果你们按照修改了路径还是报错,可以留言一起探讨一下

  • 下一章,我会讲解一下,如何在iOS新项目里集成 WireGuard 框架,自定义输入自己的 VPN 项目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值