libXray 编译成动态库

一、前言

libXray是指将 Xray-core 编译为一个静态或动态库,通常是为了集成到 Android、iOS 或其他项目中(例如通过 JNI/FFI),那么这是构建 VPN 客户端或代理应用时常见的用途。

用途示例:

  • Android VPN(与 VpnService 结合使用)
  • iOS/macOS(通过 NEPacketTunnelProvider 调用)
  • Qt 或 Flutter 集成 Xray 配置管理器

二、移动版本环境搭建

go环境安装

从官网下载官方安装包

✅ 步骤 1:访问:https://go.dev/dl/

✅ 步骤 2:下载对应 macOS 的 .tar.gz压缩包(比如 go1.22.3.darwin-amd64.tar.gz)

✅ 步骤 3:解压到你程序的目录,我这里是/Volumes/mindata/Applications/aarch64

✅ 步骤 4添加环境变量(编辑 ~/.zshrc~/.bash_profile):

    nano -w ~/.bash_profile 
    export PATH=$PATH:/Volumes/mindata/Applications/aarch64/go/bin
    export GOPATH=$HOME/go

    安装gomobile

    source ~/.bash_profile
    GOBIN=/Volumes/mindata/Applications/aarch64/go/bin go install golang.org/x/mobile/cmd/gomobile@latest
    GOBIN=/Volumes/mindata/Applications/aarch64/go/bin go install golang.org/x/mobile/cmd/gobind@latest
    gomobile init

    下载安卓NDK

    ✅ 步骤 1:安装 Android SDK

    推荐使用 Android Studio 安装 Android SDK,步骤如下:

    1. 下载 Android Studio:https://developer.android.com/studio
    2. 安装并首次启动 Android Studio
    3. 在安装向导或设置中勾选 Android SDK
    4. 记住 Android SDK 的安装路径(一般默认在:~/Library/Android/sdk

    ✅ 步骤 2:设置环境变量(如果路径不是默认)

    如果你安装 SDK 到了非默认路径,比如 /Users/zeno/Android/Sdk,那你需要设置环境变量:

    永久设置(写入 shell 配置):

    nano -w ~/.bash_profile 
    export ANDROID_HOME=/Volumes/mindata/Applications/Android/sdk
    export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

    再次初始化 gomobile

    source ~/.bash_profile 
    gomobile init

    三、生成移动版本库

    python3 build/main.py apple go
    LibXray.xcframework
    python3 build/main.py android
    libXray.aar
    libXray-sources.jar

    关于Zeno Chen

    本人涉及的领域较多,杂而不精 程序设计语言: Perl, Java, PHP, Python; 数据库系统: MySQL,Oracle; 偶尔做做电路板的开发,主攻STM32单片机
    此条目发表在go分类目录。将固定链接加入收藏夹。