SideStep — install and keep iOS apps on your own device

SideStep

SideStep is a small macOS menu-bar app that installs iOS apps onto your own iPhone or iPad using your own Apple ID (a free one works). No jailbreak, no special hardware.

The SideStep app icon

SideStep re-signs and reinstalls your apps in the background within Apple’s allowed 7-day window, so they behave like a normal, permanently-installed app. It can do this over Wi-Fi, with no cable — which makes putting an app on your own iPhone about as easy as it already is on Android.

A music app running on an iPad, installed with SideStep
A music app (Magnatune) installed on an iPad with SideStep, without the App Store.

What it’s useful for

SideStep has a built-in catalog of legitimate, sideloadable apps you can search and install directly:

SideStep's built-in catalog of sideloadable apps

Download

Download SideStep (notarized .dmg) — macOS 14 (Sonoma) or newer, Apple Silicon.

Open the .dmg and drag SideStep to Applications. It’s signed with an Apple Developer ID and notarized by Apple, so it opens without the right-click / “Open Anyway” step. SideStep runs in the menu bar — a small crate icon menu-bar crate icon, with no Dock icon. Click it to open the panel below.

SideStep's menu-bar panel on macOS
The SideStep panel: your Apple accounts, the apps installed on each device, and options to add more.

Installing an app

  1. Install SideStep on your Mac (above) and open it.
  2. Sign in with an Apple ID. Any will do — you can make a free one at icloud.com. SideStep handles the login and the texted/2-factor code.
  3. Connect your iPhone or iPad to your Mac by cable and tap Trust if asked.
  4. Turn on Developer Mode on the device (Settings ▸ Privacy & Security ▸ Developer Mode → on → it restarts once). SideStep walks you through this if it’s off.
  5. In SideStep, click Search AltStore, type what you want (try “magnatune” or “timer”), and click Install — or point SideStep at any .ipa file.
  6. Trust your Apple ID as a developer, once. The first time you install from a given Apple ID, the device asks you to approve it: Settings ▸ General ▸ VPN & Device Management ▸ tap your Apple ID ▸ Trust. Every app you install from that same account afterwards is trusted automatically.

Finding Developer Mode in iOS Settings    The Developer Mode toggle turned on
Step 4 — Settings ▸ Privacy & Security ▸ Developer Mode, then switch it on (the device restarts once).

Searching SideStep's catalog and clicking Install
Step 5 — search the catalog and click Install.

The Developer App shown as Not Trusted   Tapping Trust for your Apple ID   Confirming with Allow   The Apple ID now trusted, app Verified
Step 6 (first time only) — Settings ▸ General ▸ VPN & Device Management ▸ tap your Apple ID ▸ TrustAllow. It then shows as Verified.

After the first install, adding more apps works over Wi-Fi: as long as the device is on and unlocked, you don’t need to plug it in.

A simple timer app on iPad    Magnatune on iPhone
Apps installed with SideStep — a kitchen timer on an iPad, a music player on an iPhone.

Automatic updates

Every app SideStep installs carries a small piece of code called a beacon. When you open the app, it tells your Mac that the device is present and unlocked. If a newer version of the app exists, your Mac signs it and sends it to the device over Wi-Fi in the background; the app applies the update the next time you close and reopen it. No cable, no prompts, no App Store.

This is what keeps a sideloaded app from expiring: instead of dying after a week and needing a manual reinstall, it stays signed and current on its own.

Checking on an app: the two-finger gesture

Every app SideStep installs has a hidden status panel. To open it, press and hold two fingers in any two corners of the screen at the same time (for example, top-left and top-right) for about 1.5 seconds. It’s an awkward gesture on purpose, so you won’t trigger it by accident.

The panel shows which Apple ID signed the app, when it was last refreshed, when the signature expires, and an Update app now button.

The two-finger status panel inside a sideloaded app
The status panel — hold two fingers in two corners for about 1.5 seconds to open it.

Why I built it

I make espresso machines, and our software is written in Tcl/Tk — a language the App Store won’t accept. To get our app onto customers’ iPads I needed a way to sideload it and keep it updated without asking every customer to plug into a Mac each week. SideStep is the result. It works just as well for any app you want on your own device without going through the Store.

The Decent espresso-machine app running on an iPad
The de1app, our espresso-machine control app, on an iPad — coming soon via SideStep.

To make that work I ported Tcl/Tk to iOS. Below is that environment (iWish) running on an iPad and talking to Bluetooth hardware.

iWish (Tcl/Tk) on iPad talking to Bluetooth devices

How it works

If your app does expire

Apple’s free signatures last 7 days, and SideStep normally re-signs your apps well before then, in the background. But if a device is switched off or off the network for longer than that — for example an iPad that runs out of battery and sits unused for a couple of weeks — its apps’ signatures can lapse, and those apps won’t open until they’re re-signed.

Getting them back is quick:

  1. Turn the iPad on, unlock it, and make sure it’s on the same Wi-Fi as your Mac (or plug it in).
  2. Open SideStep and click the refresh button next to the app on that device.

SideStep re-signs the app with a fresh 7-day signature and reinstalls it over Wi-Fi — no cable needed, as long as the device is unlocked and reachable. Nothing has to be deleted or set up again: Developer Mode and the trust from the first install still apply, and SideStep signs you back in on its own if your login has lapsed.

If several apps on that device expired, you only have to do this once — tapping refresh on one expired app automatically refreshes the other expired apps on the same device too.

If you turn Developer Mode off

SideStep-installed apps only run while Developer Mode is on. If you turn Developer Mode off, those apps will stop opening until you turn it back on. To re-enable them:

  1. Turn Developer Mode back on (Settings ▸ Privacy & Security ▸ Developer Mode) and let the device restart.
  2. On the iPad, trust your Apple ID again (Settings ▸ General ▸ VPN & Device Management ▸ tap your Apple ID ▸ Trust).

After that, your sideloaded apps open normally again.

SideStep is not for piracy

SideStep exists for one reason: to install legitimate open-source and self-published apps — the kind Apple’s Store won’t carry, like our own espresso-machine software. It is not a way to install cracked copies of paid App Store apps, and it actively works to stay that way:

The blocklist is public and updated from the repository, so it can grow as new pirate sources turn up. The point is to keep SideStep useful for the independent and open-source apps it was built for — and not much use for anything else.

Build

swift build --product InstallerApp   # the menu-bar app
swift build --product Provision       # the command-line tool (install / refresh)

./bundle-app.sh builds and bundles the menu-bar app into SideStep.app. The device tools (a small libimobiledevice helper in Helpers/idevice) ship inside the app, so it’s self-contained — no Python or external tools required at runtime.

Contributing, or an AI agent picking up the project? Start with docs/AI-BOOTSTRAP.md, then docs/CURRENT-STATE.md.

Credits & license

Built on AltSign from the AltStore / SideStore projects (© Riley Testut and contributors), licensed AGPL-3.0. As a derivative work, SideStep is likewise licensed under the GNU Affero General Public License v3.0 — see LICENSE. The signer is zsign by zhlynn, included under the MIT License (see Dependencies/zsign).