airdash

simonbengtssonMIT活跃维护

基于 Flutter 和 WebRTC 的跨设备文件传输应用,无需数据线或同一局域网,就能把文件从任意设备发到任意设备。

File sharing flutter webrtc app enabling sending files to any device from anywhere

v2.0.158发布于 2024-09-02 11:16 UTC670star126fork同步于 2026-11-07 07:34 UTC

怎么上手

由 README 提炼,执行前请确认
创建 Firebase 项目并启用 Firestore 与匿名认证,复制 .env.sample 为 .env 填入项目 id 和 Web API key,然后运行:dart tools/scripts.dart app_env
cd functions && npm i && npx firebase deploy --only pairing
flutter run
硬件要求按 README 说明

README 未说明具体硬件或显存要求;应用支持 iOS、macOS、Windows、Linux 和 Android 平台。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

基于 Flutter 和 WebRTC 的跨平台文件传输应用,可向任意设备直传文件

基于 Flutter 和 WebRTC 的跨设备文件传输应用,无需数据线或同一局域网,就能把文件从任意设备发到任意设备。

核心能力

  • 用 WebRTC 在设备间直接传输文件与数据
  • 端到端加密文件并点对点传输保障隐私
  • 支持 iOS、macOS、Windows、Linux、Android 全平台
  • 借助原生分享面板与桌面拖拽快速发起传输
  • 自动选择 wifi、移动网络等最快可用连接

容易踩的坑

运行前必须自建 Firebase 项目并启用 Firestore 和匿名认证,否则无法配对;需先部署 pairing 后端云函数,否则设备配对不可用;默认只用 Google STUN,要支持 TURN 需配置 Twilio 并部署 updateTwilioToken 函数。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v2.0.158
  1. v2.0.158最新正式版2024-09-02 · 2024-09-02 11:16 UTC
  2. v2.0.1562024-09-01 · 2024-09-01 17:55 UTC
    查看更新说明

    What's Changed

    • Upgraded libraries and compilation targets

    Full Changelog: https://github.com/simonbengtsson/airdash/compare/v2.0.155...v2.0.156

  3. v2.0.1552024-05-02 · 2024-05-02 18:23 UTC
    查看更新说明

    Minor quality of life fixes and a major fix on iOS: Now screenshots and other cached files files can be received with share intents https://github.com/KasemJaffer/receive_sharing_intent/pull/290.

  4. v2.0.1462022-11-19 · 2022-11-19 19:52 UTC
    查看更新说明

    See what's new in the release notes. Some distribution files are included as assets in this release, but the update will soon be available in all supported app stores.

  5. v2.0.1422022-11-14 · 2022-11-14 21:47 UTC
    查看更新说明

    See what's new in the release notes. The msix and apk files are included as assets below, but the update will soon be available in all supported app stores.

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    AirDash File Sharing

    Transfer photos and files to any device.

    Get the app

    Analytics

    Key features

    • Support for all major platforms and app stores (iOS, macOS, Windows, Linux and Android)
    • Free forever to send any number of files of any size
    • Maximum privacy and security by fully encrypting files and transferring them directly between devices
    • Quickly start transfers using native mobile share sheet and drag and drop on desktop
    • Send files anywhere (no need to be on the same network or nearby)
    • Automatically uses the best and fastest connection available (wifi, mobile internet, ethernet etc)

    Key technologies

    • Flutter 3 (iOS, macOS, Android, Linux and Windows apps)
    • WebRTC (file and data transfers)
    • Firebase Firestore (WebRTC signaling and config storage)
    • Firebase Functions (device pairing and config automation)
    • Firebase Hosting (website and static files hosting)
    • App Store Connect API and Microsoft Store submission API (release automation)
    • Mixpanel (web and app analytics)
    • Sentry (app monitoring and error tracking)

    Run project

    • Create a firebase project (https://console.firebase.google.com) and enable firestore and anonymous authentication
    • Create a .env file by duplicating the .env.sample file
    • Replace the firebase project id and web API key in the .env file with the ones for your project (firebase console -> project settings)
    • Run dart tools/scripts.dart app_env to get a env.dart file
    • Deploy pairing backend function by cd functions && npm i && npx firebase deploy --only pairing
    • Run app using editor or flutter run

    By default a google stun server is used to connect peers. The simplest way to enable turn servers as well is to use https://www.twilio.com/stun-turn. Create functions/.env file similar to the functions/.env-sample file and deploy the updateTwilioToken backend function.

    Contribute

    Contributions are very much welcome on everything from bug reports to feature development. If you want to change something major write an issue about it first to ensure it will be considered for merge.

    Publish guide (for contributors)

    Prepare

    • Update libraries
    • flutter pub get
    • cd ios && pod update
    • cd macos && pod update
    • Update changelog.md and version in pubspec.yaml and snapcraft.yaml
    • git commit -am vX.X.X
    • git tag "vX.X.X"
    • git push && git push -f --tags

    macOS

    • flutter build macos
    • Archive -> Distribute -> Direct Distribution
    • npx appdmg appdmg.json ./build/airdash.dmg
    • Distribute with transporter

    iOS

    • flutter build ipa
    • Distribute with Transporter

    Android

    Windows

    Linux

    • Open Ubuntu in VMWare
    • Open ~\Documents\airdash in vs code
    • git pull -r && flutter pub get
    • snapcraft clean --use-lxd # required
    • snapcraft --output build/airdash.snap --use-lxd
    • snapcraft upload --release=stable build/airdash.snap
    • Copy to mac ./build/airdash.snap (send.vis.ee for example)

    Create Github release