Files
bitchat/BUILD_MACOS.md
T
2025-07-10 10:00:28 +10:00

61 lines
2.0 KiB
Markdown

# BitChat macOS Build
This Justfile provides easy commands to build and run BitChat natively on macOS while preserving the original project configuration.
## Quick Start
```bash
# Build and run the app
just run
# Or see all available commands
just
```
## Commands
- `just run` - Build and run the macOS app
- `just build` - Build the macOS app only
- `just clean` - Clean build artifacts and restore original files
- `just check` - Check prerequisites (XcodeGen, Xcode, etc.)
- `just info` - Show app information and requirements
## How It Works
The Justfile temporarily modifies `project.yml` to:
- Use your local development team ID (replaces `L3N5LHJD5Y`)
- Change bundle identifier to avoid conflicts (`chat.bitchat``com.local.bitchat`)
- Disable code signing for local development (`Automatic``Manual`)
- Exclude iOS-specific files from macOS build (`LaunchScreen.storyboard`)
**Original files are always preserved** - modifications are only applied during builds and automatically cleaned up. The project files remain exactly as they are on the main branch.
## Requirements
- macOS 13.0+ (Ventura)
- Xcode (from App Store)
- XcodeGen (`brew install xcodegen`)
- Bluetooth LE capable Mac
- Physical device (Bluetooth doesn't work in simulator)
## App Features
- **Native macOS SwiftUI app** - not a Catalyst port
- **Bluetooth LE mesh networking** - no internet required
- **End-to-end encryption** - X25519 + AES-256-GCM
- **Store-and-forward messaging** - works with offline peers
- **Channel-based group chats** - IRC-style commands
- **Private messaging** with delivery receipts
- **Emergency wipe** - triple-tap logo to clear all data
## Usage
Once running:
- Set your nickname and start discovering nearby peers
- Use `/join #channel` for group chats
- Use `/msg @user` for private messages
- Use `/who` to see connected peers
- Triple-tap the logo for emergency data wipe
The app creates a decentralized mesh network over Bluetooth LE that can span significant distances through multi-hop message relay.