┌──────────────┐ │ 1. Clone │ │ git clone … │ ├──────────────┤ │ 2. Config │ │ xcconfig │ ├──────────────┤ │ 3. Generate │ │ xcodegen │ ├──────────────┤ │ 4. Build │ │ xcodebuild │ └──────────────┘

Setup

Clone, configure, generate, and build Archon from source.

╔══════════╗ ║ Prereqs ║ ╠══════════╣ ║ Xcode 16 ║ ║ iOS 17+ ║ ║ xcodegen ║ ╚══════════╝
Developer Docs Archon iOS · Swift · SwiftUI API v1

Setup

Clone, configure, generate, and build Archon from source.

Prerequisites

Xcode 16+
Required for Swift 6 concurrency features and iOS 17 SDK. Download from the Mac App Store or developer.apple.com.
XcodeGen
Generates the Xcode project from project.yml. Install via Homebrew: brew install xcodegen.
macOS 14+
Ventura or later required for Xcode 16.
Supabase Account
A free Supabase project is needed for the backend. Create one at supabase.com.

Step 1: Clone the Repository

git clone https://github.com/Mattjhagen/archon-ios.git
cd archon-ios

Step 2: Configure xcconfig

Archon uses xcconfig files to manage environment-specific settings. Create your local config:

# Copy the template
cp Config/Local.xcconfig.template Config/Local.xcconfig

# Edit with your Supabase credentials
open Config/Local.xcconfig

Required Values

SUPABASE_PROJECT_REF = your-project-ref
SUPABASE_ANON_KEY = your-anon-key
SUPABASE_URL = https://your-project-ref.supabase.co
Finding Your Project Ref
In your Supabase dashboard, go to Settings → API. The project ref is the first part of your URL (e.g., abcdefg from abcdefg.supabase.co).
Finding Your Anon Key
Same page — the anon public key under "Project API keys". This is safe to include in the client.

Step 3: Generate Xcode Project

xcodegen generate

This reads project.yml and generates Archon.xcodeproj. Run this whenever you add/remove files or change targets.

Step 4: Build & Run

# Open in Xcode
open Archon.xcodeproj

# Or build from command line
xcodebuild -project Archon.xcodeproj -scheme Archon -destination 'platform=iOS Simulator,name=iPhone 16' build
First Launch
The app will present the onboarding flow. Create an account or sign in to test the full experience.
Simulator vs Device
For development, the iOS Simulator works well. For testing push notifications and Keychain, use a physical device with a development team configured.

Project Structure

archon-ios/
├── Archon/                    # Main app target
│   ├── App/
│   ├── Models/
│   ├── ViewModels/
│   ├── Views/
│   ├── Services/
│   └── Utilities/
├── ArchonTests/               # Unit tests
├── Config/                    # xcconfig files
│   ├── Base.xcconfig
│   ├── Debug.xcconfig
│   ├── Release.xcconfig
│   └── Local.xcconfig.template
├── project.yml                # XcodeGen spec
└── README.md

Troubleshooting

"Missing Local.xcconfig"
You forgot Step 2. Copy the template and fill in your Supabase credentials.
"No such module 'Supabase'"
Run xcodegen generate again to regenerate the project file with the correct package dependencies.
Build fails with Swift concurrency errors
Ensure you're using Xcode 16+ and the Swift 6 language mode is enabled in the target settings.