Nescroll docs
v1.0.0
Get help
● Ship · When something does not work

Troubleshooting
the usual problems and their fixes.

Most problems are signing, Screen Time on the wrong device, or a site that changed its page. Xcode's Report navigator (Cmd-9) has the full build log; the debug console shows runtime messages.

01"command not found: xcodegen"

Install it with brew install xcodegen. If brew is also missing, install Homebrew from brew.sh and open a new terminal window.

02"Signing for NoReels requires a development team"

Appears when you build for a device. Set DEVELOPMENT_TEAM in project.yml and run xcodegen generate, or select your team in Signing & Capabilities for NoReels, NescrollMonitor and NescrollShield (the Xcode-only choice is lost at the next generate).

03"Failed to register bundle identifier" or "not available"

The package's sk.mikodes.* IDs belong to the author. Change all four bundle IDs and the App Group to your own (Rebrand).

04Provisioning profile does not include Family Controls or App Groups

Let Xcode manage signing; it adds the capabilities to the App IDs. Check that your App Group string is identical in the three entitlement blocks of project.yml and in LockShared.appGroup. For an archive or TestFlight build, Family Controls also needs Apple's distribution approval (Screen Time).

05My changes in Xcode's target settings disappeared

xcodegen generate rebuilds the project from project.yml. Put the change in project.yml instead.

06The Lock tab only shows "Allow Screen Time"

In the Simulator this is expected: it cannot grant Screen Time. On a device, turn on Screen Time in iOS Settings, then tap Allow Screen Time again.

07The lock does not show on the locked app, or does not end

  • The App Group differs between project.yml and LockShared.appGroup: the extensions read empty settings. Make them identical, generate, reinstall.
  • The two extensions are not embedded: check that the NoReels target lists NescrollMonitor and NescrollShield as dependencies (they are in the package).
  • If iOS did not accept the background timer, the app says so; the lock then ends when the app is opened after the time is up.
  • Quiet hours shorter than 15 minutes are rejected by iOS.

08Reels, Shorts or ads show again

The site changed its page. Inspect it and update the selector, label or redirect (Fix a filter). Check also that the filter is on in Settings.

09My rules.json has no effect

  • AppConfig.rulesURL is nil, or not https.
  • The server does not return status 200, or the file is 256,000 bytes or larger.
  • version is not higher than the one the device already has.
  • A platform entry is missing one of selectors, labels, redirects; the whole file is then rejected (format).
  • The entry was dropped by the safety checks (sanitizing).
  • Rules are fetched when the app's window appears. Close the app completely and open it again.

10A site does not let me sign in, or asks for a code

Sites sometimes add security checks for logins from embedded browsers. Complete the check on the site's page; sign-in pages from other domains of the same owner are allowed inside the tab (Platform.hostSuffixes). If a site now sends sign-in through a domain that is not listed, add it to hostSuffixes.

11Tests fail

See known test results: run with -testLanguage en.