Building Bitchat requires a Mac with full Xcode installed — Command Line Tools alone are not sufficient. The project targets macOS 13+ and iOS 16+, and all build recipes keep artifacts in a repository-localDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/permissionlesstech/bitchat/llms.txt
Use this file to discover all available pages before exploring further.
.DerivedData/ directory so nothing spills into your system Xcode caches.
Prerequisites
- Full Xcode — install from the Mac App Store. Command Line Tools (
xcode-select --install) are not enough;xcodebuildmust resolve to a full Xcode installation. If you have both, point the selector at Xcode:sudo xcode-select -s /Applications/Xcode.app/Contents/Developer. just(optional but recommended) — a command runner that wraps the commonxcodebuildinvocations in short, memorable aliases:
Using just (Recommended)
Runjust check first to confirm your environment is ready, then use whichever recipe you need:
just build and just run use the bitchat (macOS) scheme and write all output to the ignored .DerivedData/ directory. They never patch source, project, configuration, or entitlement files.
just clean and just nuke never invoke git and never restore or remove tracked files. Both recipes only delete .DerivedData/, .build/, and (for nuke) nested localPackages/.build caches. They are safe to run at any time — uncommitted work is always preserved.Using Xcode
Open the project file directly from the repository root:bitchat (macOS) or bitchat (iOS)) from the scheme picker in the Xcode toolbar, then use Product → Build (⌘B) or Product → Run (⌘R) as usual.
Code Signing for Device Builds
Simulator and unsigned builds work without any Apple Developer account. For signed builds targeting a physical device, create a local configuration file from the provided example:Configs/Local.xcconfig and replace the placeholder team ID with your own Apple Developer Team ID. The entitlement files already reference $(APP_GROUP_ID), so no tracked project or entitlement files need to be edited. Local.xcconfig is listed in .gitignore and will never be committed.
Command-Line Builds
iPhone 17 is not installed, run the List available simulators command above and substitute a destination that appears in its output.
SwiftPM
The repository also has a SwiftPM package (Package.swift) that covers the core logic. You can run the test suite directly without Xcode:
just test and does not require a signing identity or simulator.
Build Artifacts
All Xcode builds are directed to.DerivedData/ at the repository root (listed in .gitignore). SwiftPM writes to .build/. Neither directory is tracked.
just cleanremoves.DerivedData/and.build/just nukedoes the same and also removes.build/directories insidelocalPackages/and the.cache/directory