Skip to content

Getting Started

Cestercian edited this page Aug 8, 2026 · 1 revision

Getting Started

Prerequisites

  • Xcode (full app — not just Command Line Tools)
  • xcodegen
  • Optional: Supabase CLI + Docker for local backend
  • Connected iPhone for device deploys (make deploy)

This machine's xcode-select often points at CommandLineTools. Always prefix build tools:

DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer

First run

# 1. Generate the Xcode project (after editing project.yml or add/remove files)
xcodegen

# 2. Open in Xcode → ⌘R on an iPhone simulator (iOS 26)
open Artistant.xcodeproj

For a live backend, create gitignored local config:

Configs/Debug-Dev.local.xcconfig   # artistant-dev URL + publishable key
Configs/Release-Prod.local.xcconfig # artistant-prod (Release / TestFlight)

Without .local.xcconfig, Debug falls back to http://127.0.0.1:54321 (local Supabase CLI).

Compile-check (green-tree gate)

Run after any source change. This is the per-commit bar — not Release archive, not the full UI suite.

xcodegen
DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer \
  xcodebuild -project Artistant.xcodeproj -scheme Artistant \
    -sdk iphonesimulator -destination 'generic/platform=iOS Simulator' \
    -configuration Debug CODE_SIGNING_ALLOWED=NO build 2>&1 \
  | grep -E '(error:|BUILD )' | head -10

Full UI test suite

~93 XCUITests. Run before merging a branch to main and before TestFlight — not required on every commit.

DEVELOPER_DIR=/Applications/Xcode.app/Contents/Developer \
  xcodebuild test -project Artistant.xcodeproj -scheme Artistant \
    -destination 'platform=iOS Simulator,name=iPhone 17,OS=latest' \
    -only-testing:ArtistantUITests CODE_SIGNING_ALLOWED=NO

One class: -only-testing:ArtistantUITests/ChatSmokeTests

Device deploy

make deploy                 # auto-pick connected iPhone
make deploy DEVICE="Yash"   # target by name substring

Phone must be unlocked, trusted, Developer Mode on. Signing team is 3VN4X827YF in project.yml — never set only in the Xcode UI (next xcodegen reverts it). If an older Artistant signed by a different team is on the phone, delete it first.

Visual verification

./scripts/snap.sh                              # → /tmp/artistant.png
./scripts/snap.sh "iPhone 17 Pro" /tmp/x.png

Use this before claiming a layout fix. Reset Welcome on cold launch:

xcrun simctl uninstall booted in.artistant.app
./scripts/snap.sh

SPM dependencies

Package Use
supabase-swift Auth, PostgREST, Realtime, Storage
sentry-cocoa Crash + performance (keys operator-gated)
posthog-ios Analytics (keys operator-gated)

See also: Auth & Config · Testing

Clone this wiki locally