You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为WireGuardKit构建React-Native封装,Swift测试应用链接报错求助

解决WireGuardKit React-Native封装的链接错误问题

问题根源

这是M2 Pro芯片+Xcode15环境下的典型兼容性问题:libwg-go.a的arm64模拟器编译产物符号表损坏,而且缺少Go CGO依赖的Darwin ARM异常处理相关符号,导致链接时找不到对应实现。

修复步骤

1. 重新编译libwg-go.a,适配模拟器架构

别用默认编译命令,针对模拟器和真机分别编译再合并,避免架构混淆:

# 编译真机版本
CGO_ENABLED=1 GOOS=darwin GOARCH=arm64 SDKROOT=$(xcrun --sdk iphoneos --show-sdk-path) go build -buildmode=c-archive -o libwg-go-iphoneos.a

# 编译模拟器版本
CGO_ENABLED=1 GOOS=darwin GOARCH=arm64 SDKROOT=$(xcrun --sdk iphonesimulator --show-sdk-path) go build -buildmode=c-archive -o libwg-go-iphonesimulator.a

# 合并成支持双架构的胖库
lipo -create libwg-go-iphoneos.a libwg-go-iphonesimulator.a -output libwg-go.a

替换掉项目中原有的libwg-go.a文件。

2. 调整Xcode项目构建设置

  • 打开项目的Build Settings,找到Architectures,设置为$(ARCHS_STANDARD);Excluded Architectures里,Debug-iphonesimulator项不要添加arm64(M系列模拟器本身使用arm64架构,排除会直接导致编译失败)
  • 找到Other Linker Flags,添加-framework CoreFoundation -framework SystemConfiguration,补全依赖的系统框架
  • 删除DerivedData文件夹:/Users/zach/Library/Developer/Xcode/DerivedData/vpn-testing-2-bwlltvgctdybzvheohentkkatmte,再执行Clean Build操作

3. 补全系统库依赖

如果仍报错,前往项目的Linked Frameworks and Libraries中添加libSystem.B.tbd——你缺失的两个异常处理符号就包含在这个系统库内。

4. 核对WireGuardKit版本

确保使用的是适配Xcode15的WireGuardKit稳定版本,旧版本可能未适配M系列芯片的新编译逻辑。

内容的提问来源于stack exchange,提问作者ZachT112

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 20:06:16