Website · 한국어 · Manual · Release status
SideRefresh is an open-source macOS app that rebuilds, signs, and reinstalls one iOS app you own before free Xcode Personal Team signing expires. It uses the source and Apple tooling already on your Mac—no IPA catalog, signing service, jailbreak, or Apple Account password collection.
Source builds are available now. A Developer ID-signed and notarized public Mac build remains a separate release gate.
Current source prerelease: v0.2.0-beta.2.
Sample preview · synthetic data. The app interface currently supports English and Korean.
The Simple workspace keeps one relationship visible: your app → build, sign, install → your iPhone. Raw Xcode and CoreDevice output stays in Diagnostics.
- Prepare Xcode once. Sign in with an Apple Account, choose your free Personal Team, pair the iPhone, enable Developer Mode, and run your app once.
- Choose one app and one iPhone. SideRefresh reviews the app name, Bundle ID, version, scheme, team, and CoreDevice identity before saving.
- Run Refresh now. It builds with Xcode, validates the Bundle ID, installs through CoreDevice, and records success only with expiration evidence.
After that first verified installation, explicitly enable Automatic refresh. The Mac must be awake and the iPhone reachable when a renewal is due.
Requirements: macOS 13+, Xcode 16.2 or a compatible Swift 6 toolchain, an Apple Account Personal Team, and one paired physical iPhone.
swift test
Scripts/validate-samples.sh
Scripts/build-app.sh
open dist/SideRefresh.appThe default build uses an ad-hoc signature for local development. It does not register the background Agent or modify Login Items.
launchd → short-lived Agent → renewal engine → xcodebuild → devicectl → iPhone
↘ optional Tailnet preflight
- Current Xcode source is rebuilt; SideRefresh does not pull Git changes.
- Build settings resolve the exact app product before Bundle ID validation.
- Version behavior—keep or advance—is separate from the build strategy.
- Native workspace, CLI, LaunchAgent, and MCP surfaces share the same core.
SideRefresh currently supports one app you own, one Xcode project or workspace, and one paired iPhone per configuration. It does not install third-party IPAs, make Personal Team signing permanent, manage fleets, work without Xcode, or claim verified pure-cellular CoreDevice renewal. Tailscale remains optional and experimental; it does not replace Apple pairing, trust, or signing.
- Set up: User manual · Personal Team
- Understand: Implementation status · Architecture
- Automate: CLI, LaunchAgent, and MCP · Renewal helper
- Build: Examples · Distribution
- Evaluate: Open-source landscape · Product Hunt plan
Install the repository hooks with Scripts/install-git-hooks.sh, then see
CONTRIBUTING.md. Report sensitive issues through
SECURITY.md. Code and documentation are available under the
Apache License 2.0; names and visual assets follow the
brand policy. Versions through v0.2.0-beta.1 remain MIT-licensed.
