Help, bug reports & feature requests
CityBlock is built and supported by one person. The fastest way to reach me is email, and I read every message.
joem.dev@icloud.comNeed help, found a bug, or have a feature request? Email joem.dev@icloud.com. To help me fix things fast, include your CityBlock version (Settings, at the bottom), your iOS version and iPhone model, and which block was misbehaving: what it shields, when it runs, and what you expected to happen.
I aim to respond within 2 business days. Anything that leaves you stuck behind a block you can't lift gets priority.
CityBlock needs Screen Time permission to shield anything. If you skipped it, or changed your mind, grant it in Settings → Screen Time → See All App & Website Activity, and make sure CityBlock is allowed. Then open CityBlock once: it puts every shield back the moment it opens.
Apple's shield can only close, defer, or do nothing at all, so unlocking happens in the app: the shield sends a notification, and tapping it opens the challenge. Without notification permission that button leads nowhere, and CityBlock says so on its home screen. Allow notifications there, or in Settings → Notifications → CityBlock.
An unlock is timed, and the shield returns on its own when it lapses. iOS wakes the app's monitor to do that, and it can be a minute or so late. If it is much later than that, or only happens when you open CityBlock, please email me with the block's name and how long the unlock was set to.
That's deliberate, and it has two shapes. A block switched on while it was already holding stays on until the end of that window. Otherwise turning one off asks for the same challenges as pushing past it and spends one of the day's unlocks. Once those are gone you can still turn it off, but it costs your streak. To switch the whole thing off for a block, open it and turn off Cost to turn off.
That's an Allow only these block with nothing picked yet, which reads as "shield everything". CityBlock ignores an allowlist with nothing in it rather than shutting the phone, so open the block and choose the apps that stay open. Phone and Messages are worth leaving in.
A pause draws a screen in front of another app, which no app can do on its own. It needs a Shortcuts automation: Shortcuts → Automation → App → the app you want → Opened, Run Immediately, then Pause before opening followed by Open App. CityBlock walks through this under Set up a pause. Blocked apps don't need it; only paused ones do.
Fifteen minutes across everything, once a day, for when you genuinely need in. It ends your streak and marks the city, which is the point. It isn't a way round a block you set five minutes ago.
Both read the iPhone's motion sensors, not Health, so they need Motion & Fitness permission: Settings → Privacy & Security → Motion & Fitness → CityBlock. Steps count from the moment you ask for the unlock, so walk after opening the challenge, not before. Squats want the phone in a pocket or held still against you.
Save the tag in CityBlock first (Settings → NFC tags), then hold the top of the phone against it. Any cheap NTAG sticker works, and it never needs writing to: CityBlock only reads the identifier it already knows. Tags don't work on iPhones without NFC reading, and the phone must be unlocked.
Because that's the shortest interval iOS will wake an app for in the background, and it's the only reliable way to put a shield back without the app running. Anything shorter could leave a block down far longer than you asked.
iOS gives no way to launch an app from a Screen Time selection, so the dumb phone list opens apps by their published URL scheme. Most work straight away. Apple's own Camera, Clock, Contacts, Settings, Safari and a few others publish no way in at all, so those run a shortcut of the same name: make a one-action shortcut (Open App → Camera, named "Camera") and it works from then on. CityBlock explains this where you pick them.
That means iOS answered that nothing handles its link, either because the app isn't installed or because it never registered a scheme. Adding a shortcut named after the app, and adding that by link, gets round it either way.
Weather needs location permission while using the app, and the widget only gets a location when iOS decides to hand one over, so CityBlock fetches it when you open the app and the widget reads what it left. If it stays blank, the widget editor says why. It's always optional: the rest of the widget works without it.
Widgets are drawn from a timeline prepared in advance, not live. CityBlock supplies a minute's worth of entries at a time when the clock is switched on. If it looks frozen for longer than a minute or two, remove and re-add the widget and let me know.
Apple renders Screen Time figures inside a sealed system view that can't pass anything back to the app, so CityBlock can show them but can't read them. Everything CityBlock counts for itself, streaks, unlocks and allowances, comes from what happened in the app.
No. CityBlock is free, with unlimited blocks, schedules, daily limits, wait timers, streaks, intentions and the city. Pro is a one-time purchase that adds physical unlocks (steps, squats, tags), holidays and breaks, strict mode and widgets. Use Restore a purchase on the Pro screen on a new phone.
Turn on iCloud backup in Settings and your blocks, streak and city come with you. One exception, and it's Apple's: app selections are sealed tokens tied to the device that made them, so a restored block may ask you to pick its apps again.
No account, no tracking, no analytics, nothing collected. Blocks, streaks and history live on your device and in your own iCloud if you switch backup on. The only thing that ever leaves is a request for a forecast, and only if you put weather on the widget.