iOS Quickstart
Scan your Swift codebase, generate type-safe event structs, and wire CI so bad analytics never reach TestFlight. About 10 minutes.
Create a workspace
Sign in at https://app.ordaze.com. Create a workspace for your iOS app and name it after the product (e.g. MyApp iOS). New signups get 14 days of Pro access automatically, no card required.
Define your first events
In the sidebar, go to Events → Add Event. Define the events your iOS app fires today. Snake-case names travel well between SDKs (
purchase_completed, checkout_started). Mark properties as required where the analyst will actually use them.Once you have 3–5 events defined, go to Versions → Publish. The scanner needs at least one published version to check your code against.
Run the scanner locally
From the root of your Xcode project:
# Generate an API token at app.ordaze.com/settings/tokens, then:
export ORDAZE_TOKEN=YOUR_TOKEN
npx @ordaze/scanner scan \
--platform ios \
--dir Sources/The scanner walks every .swift file, matches analytics calls against your tracking plan, and reports matched / unmatched / missing events. Nothing is installed into your app. Nothing runs at runtime.
Generate the typed Swift wrapper
In the Ordaze dashboard go to Code Generation, pick the Swift default template, and download. Drop the generated
Analytics.swift into your Xcode project for a strongly-typed namespace on every event:import Ordaze
Analytics.purchaseCompleted(
amount: 9.99,
currency: .usd
)
// Compiler enforces required properties + enum values.Wire the GitHub Action
Drop this workflow into
.github/workflows/analytics.yml so every PR blocks merges when coverage drops:name: Analytics Coverage
on: [pull_request]
jobs:
scan:
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: ordaze/ordaze-scanner@v1
with:
token: ${{ secrets.ORDAZE_TOKEN }}
platform: ios
strict: true
min-coverage: 80Store your token as ORDAZE_TOKEN in Settings → Secrets and variables → Actions. With strict: true + min-coverage: 80, any PR that drops coverage below 80% or adds an unknown event will fail the check.