Skip to content

tasselx/LanShare-Mac

Repository files navigation

LanShare

一个使用 SwiftUI 开发的原生 macOS 应用,通过生成分享链接和二维码在局域网内快速共享文件。

LanShare 应用截图

功能特性

  • 📤 快速分享 - 拖放或选择文件即可生成分享链接
  • 📁 任意文件类型 - 支持所有格式,无限制
  • 📱 二维码分享 - 自动生成二维码,手机扫码即可下载
  • 🔗 MD5 短链接 - 简洁易记的分享链接
  • 🌐 HTTP 服务器 - 内置 HTTP 服务器,无需额外配置
  • 📋 网页文件列表 - 提供网页版文件列表,方便批量下载
  • 🎨 现代界面 - 使用 SwiftUI 构建的原生 macOS 界面
  • 💬 Toast 提示 - 优雅的操作反馈
  • 限速传输 - 支持自定义传输速度限制,可选512KB/s至10MB/s预设或自定义速度

查看完整功能列表:FEATURES.md

系统要求

  • macOS 13.0 或更高版本
  • Xcode 14.0 或更高版本(用于编译)

安装和运行

方式一:使用 Xcode 运行(开发)

  1. 使用 Xcode 打开 LanShare.xcodeproj
  2. 选择目标设备(Mac)
  3. 点击运行按钮或按 Cmd + R

方式二:使用脚本打包(发布)

# 快速构建(推荐)
make build-simple

# 完整打包(包含 DMG 安装包)
make build

# 构建并运行
make run

# 安装到 Applications 文件夹
make install

# 清理构建文件
make clean

或直接运行脚本:

# 快速构建
./build-simple.sh

# 完整打包
./build.sh

使用方法

分享文件

  1. 在"分享文件"页面,拖放或选择要分享的文件
  2. 自动弹出分享窗口,显示二维码和分享链接
  3. 其他设备扫描二维码或访问链接即可下载

查看共享列表

  1. 在"共享列表"页面查看所有正在共享的文件
  2. 点击"分享"按钮可重新查看二维码和链接
  3. 点击"删除"按钮可停止分享该文件
  4. 复制文件列表链接,在浏览器中查看所有共享文件

限速设置

  1. 在主界面顶部可以看到"限速传输"开关
  2. 打开开关后可以设置传输速度限制
  3. 提供快速预设:512KB/s、1MB/s、5MB/s、10MB/s
  4. 也可以手动输入自定义速度(单位:KB/s)
  5. 实时显示当前限速设置

接收设备访问

  • 手机/平板:扫描二维码直接下载
  • 电脑:在浏览器中输入分享链接
  • 批量下载:访问文件列表页面,查看所有共享文件

技术实现

  • SwiftUI - 用户界面框架
  • Network Framework - HTTP 服务器实现
  • CoreImage - 二维码生成
  • Combine - 响应式编程

项目结构

LanShare/
├── LanShareApp.swift           # 应用入口
├── ContentView.swift            # 主界面(包含文件卡片和二维码)
├── Models/
│   └── SharedFile.swift        # 共享文件模型
├── Managers/
│   └── NetworkManager.swift    # HTTP 服务器和网络管理
├── Info.plist                  # 应用配置
└── LanShare.entitlements       # 权限配置

权限说明

应用需要以下权限:

  • 网络服务器 - 用于启动 HTTP 服务器
  • 网络客户端 - 用于网络通信
  • 文件访问 - 用于读取要分享的文件

注意事项

  • 确保接收设备与 Mac 在同一局域网内
  • 防火墙可能会阻止连接,请允许应用访问网络
  • 首次运行时系统会请求网络访问权限,请点击允许
  • 默认端口为 8080,如被占用可在代码中修改
  • 文件分享期间请保持应用运行

开发计划

  • 限速传输功能
  • 支持文件夹分享
  • 添加密码保护
  • 自定义端口设置
  • 分享链接有效期设置
  • 下载统计和日志
  • 支持 HTTPS

应用图标

项目包含自定义设计的应用图标:

  • 📁 图标文件位于 Assets/ 目录
  • 🎨 提供 SVG 源文件和生成脚本
  • 📖 详细说明请查看 Assets/README.md

生成图标:

./generate-icon.sh

构建说明

构建脚本

项目提供了三个脚本:

  1. build-simple.sh - 快速构建脚本

    • 仅构建应用,不签名
    • 适合本地测试和开发
    • 构建速度快
    • 输出: build/LanShare.app
  2. build.sh - 完整打包脚本

    • 构建、归档、导出应用
    • 创建 DMG 安装包
    • 适合发布和分发
    • 输出: build/LanShare.dmg
  3. test-build.sh - 验证构建配置

    • 检查项目文件和配置
    • 不执行实际构建
    • 用于快速验证环境

构建输出

构建完成后,文件位于 build 目录:

build/
├── LanShare.app              # 应用程序(build-simple.sh)
├── export/
│   └── LanShare.app          # 导出的应用(build.sh)
└── LanShare.dmg              # DMG 安装包(build.sh)

系统要求

  • macOS 13.0 或更高版本
  • Xcode 14.0 或更高版本
  • Command Line Tools

许可证

MIT License

About

LanShare 是一款原生 macOS 应用,让局域网文件共享变得简单。拖放文件即可生成分享链接和二维码,手机扫码或浏览器访问即可下载,无需安装任何客户端。A native macOS app for easy LAN file sharing. Drag, drop, and share via QR code or link.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors