论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
软件与程序人生
›
移动端开发
›
IOS
›
【最新 iOS VPN 之 WireGuard for iOS 安装构建 修复报 ...
【最新 iOS VPN 之 WireGuard for iOS 安装构建 修复报错】
泉缘泉
金牌会员
|
2024-9-23 14:33:41
|
显示全部楼层
|
阅读模式
楼主
主题
765
|
帖子
765
|
积分
2305
前言
在开发 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)
官方项目使用
克隆完项目cd wireguard-apple后 ,这里修改Developer.xcconfig内里信息的话,发起使用
Xcode 打开来修改填写 Team ID 和 Bundle ID
注意这里许多人没怎么使用过 Developer.xcconfig 的话,都会保留<>括号,但这不消保留,直接填写,假如
team_id:3FJEf9Jfmf,那么:DEVELOPMENT_TEAM = 3FJEf9Jfmf,
这项目包含了 mac 端代码的,但是如果只要 iOS 端的话,这里 bundle id 只写 APP_ID_IOS 就可以
继承根据官方步骤:
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 路径,然后修改一下 Makefile的 REAL_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 项目
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
正序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
发新帖
回复
泉缘泉
金牌会员
这个人很懒什么都没写!
楼主热帖
华为一镜到底主题__荣耀30系列安装教程 ...
日志模块
「Docker入门指北」容器很难理解?带你 ...
数据资产为王,如何解析企业数字化转型 ...
信创环境下分布式文件存储MinIO集群部 ...
28基于java的简单酒店数据管理 ...
Vulnhub之M87靶机详细测试过程(不同提 ...
面试题百日百刷-HBase中HTable API有没 ...
解决NuGet加载或下载资源慢的问题 ...
MYSQL(进阶篇)——一篇文章带你深入 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表