Skip to main content

Get started

This guide walks through the fastest path to cloning the repository, installing dependencies, configuring local signing, and running the app.

Requirements​

You will need:

Ruby powers Bundler (for Ruby tooling) and CocoaPods (for Apple platform dependencies), both of which are installed as part of the dependency step.

Fork, clone, and create a branch​

Fork the repository​

  1. Open the Home Assistant iOS repository.
  2. Click Fork to create your own copy.

Clone your fork​

git clone https://github.com/<your-github-username>/iOS.git
cd iOS

Create a branch​

Create a branch before making changes:

git checkout -b feature/my-change

Install dependencies​

Choose one Ruby setup that works for you, then install gems and pods.

Example with Homebrew Ruby​

brew install ruby@3.1 cocoapods
$(brew --prefix)/opt/ruby@3.1/bin/bundle install
$(brew --prefix)/opt/ruby@3.1/bin/bundle exec pod install --repo-update

Example with mise​

brew install mise
mise install
bundle install
bundle exec pod install --repo-update

If you already have a working Ruby environment, bundle install followed by bundle exec pod install --repo-update is enough.

Configure local code signing​

Debug builds use automatic provisioning, but you still need local overrides because the app uses several entitlements.

Create Configuration/HomeAssistant.overrides.xcconfig and add:

DEVELOPMENT_TEAM = YourTeamID
BUNDLE_ID_PREFIX = some.bundle.prefix
  • DEVELOPMENT_TEAM is your Apple developer team identifier.
  • BUNDLE_ID_PREFIX should be a prefix you control so Xcode can create local provisioning profiles.

This file is ignored by Git and should stay local.

Open and run the app​

After dependency installation finishes:

  1. In Xcode, open HomeAssistant.xcworkspace.
  2. In the scheme picker, select App-Debug.
  3. In the destination selector, choose an iOS simulator or development device.
  4. In Xcode, build and run.

App-Debug is the normal entry point for local development.

Useful local commands​

Run repo quality checks:

bundle exec fastlane lint

Run autocorrect on supported issues:

bundle exec fastlane autocorrect

Run the default automated test suite:

bundle exec fastlane test

Testing Home Assistant frontend changes​

If you are working on the Home Assistant frontend (the web UI rendered inside the app's WebView) and only need to validate those changes, you can skip building the app yourself:

  1. Download the simulator app artifact produced by CI on a recent main build.
  2. Install it in an iOS simulator.
  3. Debug the embedded WebView with Safari Web Inspector.

What's next?​