Skip to main content

Build script

The app is built using scripts/build-ios.sh, which handles configuration, SDK selection, and API URL injection.
The script injects the correct API URL at build time based on the configuration and environment.

API sources

URL resolution order

The API base URL is resolved in this priority order:
1

Build-time override

If an explicit API URL is passed to the build script, it takes priority.
2

SANDBOX_API_URL environment variable

If set, this env var overrides the default. Useful for pointing at local or staging servers.
3

Default

Falls back to the production URL (api.sightscreen.app).
To test against the fake API locally, set SANDBOX_API_URL=https://fake-api.sightscreen.app before building.

Info.plist configuration

Key entries in the app’s Info.plist:
All three Info.plist entries are required. fetch enables periodic stale-detection checks. remote-notification enables silent push processing for Live Activity token management. NSSupportsLiveActivitiesFrequentUpdates unlocks the higher update budget needed for ball-by-ball cricket scoring.

Bundle identifiers

The main app bundle ID is registered with APNs for push notifications and Live Activity updates.

Widget target

The widget target SightscreenWidget is a separate build target that shares models with the main app.

Fonts

The app uses two custom font families: Both are bundled in the app and registered in Info.plist.

Theme system

Visual theming is managed through three files:
Team branding colors are one of the few things defined on the client side, since they are purely visual and do not depend on match state or backend logic.