Skip to main content

Targets

Apple platform targets​

The Home Assistant iOS repository is a multi-target workspace. A single change can affect more than the main app, so it helps to know the main surfaces in the project.

Main app​

The primary application target is the iPhone and iPad app. For local development, the usual entry point is the App-Debug scheme. The repository also contains App-Beta and App-Release schemes for release-oriented builds.

Widgets and App Intents​

The project includes widget and App Intent targets under Sources/Extensions/Widgets and Sources/Extensions/AppIntents.

These targets power Home Screen widgets, interactive controls, and system integrations that surface Home Assistant actions outside the main app.

Apple Watch​

Watch-related code lives in Sources/Watch, Sources/WatchApp, and watch-related extension code under Sources/Extensions/Watch.

Changes involving actions, notifications, complications, or shared configuration often need watch-specific validation.

CarPlay​

CarPlay functionality lives under Sources/CarPlay. This includes templates, list items, filtering, and action execution behavior for supported entities.

Notification extensions​

The repository contains dedicated notification targets for richer push handling:

  • Notification service extension
  • Notification content extension
  • Push provider support

These targets matter when working on notifications, attachments, or command handling.

Share and other extensions​

The project also includes additional extensions such as:

  • Share extension
  • Matter extension

If your feature interacts with incoming content, home platform setup, or extension-safe shared code, check these targets too.

macOS support​

The repository also builds macOS artifacts in CI. Sources/MacBridge contains macOS-specific bridge code used by those builds.

Even if you are working on an iOS feature, shared code may also be compiled for Mac builds.

Supporting packages​

The repository includes standalone Swift packages that support the app ecosystem:

  • Sources/PushServer
  • Sources/SharedPush

These are tested separately from the main Xcode workspace when their code changes.