For iOS and macOS developers

Find what’s wrong before the build does.

Sindri reads the certificates, profiles and Xcode installs already on your Mac, and what App Store Connect reports about your apps. Then it tells you what is wrong and what to do about it.

Signing and Certificates are free · macOS 15 or later · Apple silicon and Intel

Sindri’s Overview: one card per tool. Signing shows a push environment mismatch, Xcode shows three installed versions with 27.1 active, and Releases shows one build being processed.

Demo

The whole app in 48 seconds

A walk through every tool, recorded in Sindri’s demo mode: the names and numbers on screen are fictional.

Features

Seven tools, one window

Each one answers a question you would otherwise spend twenty minutes on.

Free

Signing

Why won’t this project sign?

Point Sindri at a project and it checks the whole chain: expiring or revoked certificates, missing private keys, and profiles that don’t match the certificate, the device or the entitlements. Each finding says what is wrong and where.

  • The entitlements as a tree, or the raw values
  • Checked against the Developer portal
  • The certificate chain, tier by tier
The Signing screen for a project: one critical finding, a push environment mismatch between the entitlements and the provisioning profile, above two healthy checks and the certificate chain.
Free

Certificates

What is about to expire?

Every signing certificate in your keychain with its expiry, whether its private key is there, the profiles that use it, and whether the portal still lists it. Renew one in a click: a new key and certificate, and the affected profiles created again.

  • Nothing is renewed, revoked or deleted without your confirmation
  • Every change is written to an audit log
The Certificates screen: four certificates from the keychain with their team, keychain status and days left; one expires in 12 days and one has expired.
Pro

SwiftUI Analyzer

Why does this view re-render?

Paste a view or drop its files. Sindri draws the hierarchy as a graph with its state dependencies and re-render risk, scores it out of 100 across six categories, and shows each issue with its fix as a diff.

SwiftUI Analyzer: a score of 69 out of 100 with six category scores, the view graph from ProductListView down to its children with state dependencies as dashed lines, and an inspector on the selected view.

Local first

Analyze parses your files with SwiftSyntax and runs Sindri’s rules on your Mac: ForEach identity, non-lazy stacks, AnyView, objects created in a body. Instant, and nothing is sent.

An AI agent, when you ask

Deep analysis sends the files you chose to Codex, Claude or Gemini with your own API key. With Claude, the cost is estimated before anything leaves.

Grounded in your source

The agent’s answer has to follow a strict contract, and the views and line numbers in the graph still come from your code, not from the model.

Swift Preview: a SwiftUI view’s code on the left and the view rendered in an iPhone frame on the right, with the build time in the status bar.

Swift Preview Pro

A scratchpad that compiles.

A SwiftUI view rendered next to its code in a device frame, in light and dark, or a Swift program next to its output. It builds with your installed toolchain and runs in its own process, so a crash never reaches the app.

The Xcodes screen: installed Xcode versions with the active one marked, and their disk usage.

Xcodes Pro

Which Xcode is this, again?

The versions installed, the active command line tools, simulator runtimes and what they cost in disk space. Install any Xcode release, switch between them, and uninstall one to the Trash.

The Releases screen: three apps, and for the selected one each recent build on a five-step line from Uploaded to On the App Store.

Releases Pro

Where is build 412?

Your team’s apps and where each build stands, step by step: uploaded, processing, TestFlight, App Review, on the App Store.

The Reminders screen: expiry alerts switched on, the reminder windows, and the history of signing changes.

Reminders Pro

Before it expires, not after.

Local notifications ahead of certificate and profile expiry, and the log of everything Sindri changed on your behalf.

Screenshots

In light, too

Sindri follows your Mac’s appearance. These are the app’s own captures, with demo data.

Why Sindri

Built the way you would want a tool near your keychain built

Nothing is invented
What can’t be read is reported as unavailable. Sindri never shows a placeholder where real data should be.
It reads by default
The only writes are the ones you confirm, each with a summary of what it will change, each recorded in the audit log.
Secrets stay in the Keychain
Your App Store Connect key, license key and AI provider keys live in the macOS Keychain and are never logged.
No account, no backend
Requests go to Apple with your own credentials, and to Lemon Squeezy for licensing. Deep analysis is the one exception, and only when you ask for it.

Free where it hurts most. One price for the rest.

Free

  • Signing
  • Certificates

Sindri Pro

  • Xcodes
  • Swift Preview
  • SwiftUI Analyzer
  • Releases
  • Reminders

€14.99, once. No subscription. Try every Pro tool free for 14 days, without an account or a card.

FAQ

Questions, answered plainly

What does Sindri cost?

Signing and Certificates are free. Sindri Pro is a one-time purchase of €14.99 that unlocks Xcodes, Swift Preview, SwiftUI Analyzer, Releases and Reminders. There is no subscription.

Can I try Pro before buying?

Yes. A 14-day trial of every Pro tool starts when you choose it in the app, not at install. It needs no account and no card, and runs once per Mac.

What do I need to run it?

A Mac with macOS 15 or later, Apple silicon and Intel. Swift Preview builds with the Xcode toolchain installed on your Mac. Releases and the Developer portal checks use an App Store Connect API key from your own team. The app is in English and French.

What leaves my Mac?

There is no Sindri account and no Sindri server. Requests go to Apple with your own credentials, and to Lemon Squeezy to check your license. SwiftUI Analyzer’s local analysis sends nothing. Its deep analysis, when you ask for it, sends the files you chose to the AI provider you picked, with your own key, after a notice the first time.

Do I need an AI key for SwiftUI Analyzer?

No. Analyze runs locally with Sindri’s own rules. A key from OpenAI, Anthropic or Google is only needed for deep analysis, and it stays in your Keychain.

Will Sindri change my certificates or profiles?

Only when you ask. It reads by default; deleting a certificate from the keychain or renewing one is confirmed first with a summary of what will change, then recorded in the audit log.

How do I install it?

Download the DMG, open it and drag Sindri to Applications. The app is signed with a Developer ID and notarized by Apple.

How do updates work?

New versions are published on the download page. Download the latest DMG and replace the app; your license and settings stay in place.

Does the license work offline?

Yes. It is checked at launch and every few hours, and holds for 7 days without a connection.

Start with the part that is free.

Run a signing diagnosis on your own project. No account, no card.

macOS 15 or later · Apple silicon and Intel