Skip to content
Install

Troubleshooting

The errors you're most likely to hit, what each one means, and how to fix it.

Start with sochi doctor. It checks Xcode, Swift, devices, teams and simulators, and marks anything wrong with ✗.

sochi prints its own errors as a single line starting with ✗, and exits with status 1.

Run sochi from the folder that contains the project, or pass its path: sochi run ~/Code/Weather.

Found several projects (…). Pass one explicitly

Section titled “Found several projects (…). Pass one explicitly”

The folder has more than one workspace, or more than one project. Pass the one you want: sochi run Weather.xcworkspace.

… is a Swift package. Only Xcode projects and workspaces are supported for now.

Section titled “… is a Swift package. Only Xcode projects and workspaces are supported for now.”

sochi works with apps in an Xcode project or workspace. A folder with only a Package.swift isn’t supported yet.

The message lists the schemes that exist. Check the spelling, or leave out --scheme to let sochi choose.

run needs a scheme that builds an app. Pick the app’s scheme with --scheme.

Plug in and unlock your iPhone or iPad, or run on a simulator with --sim. sochi devices shows what’s paired and what’s reachable.

Several devices match what you passed to --device. Type more of the name, or the start of the UDID.

Check the name with sochi devices or sochi sims. For simulators, the name has to match exactly.

The device was locked or asleep when the build tried to reach it. Unlock it and keep it awake, or connect it with a cable, then run again.

Turn on Developer Mode in Settings › Privacy & Security on the device, then restart it.

Install an iOS runtime in Xcode › Settings › Components.

The project has no development team and no accounts are signed into Xcode

Section titled “The project has no development team and no accounts are signed into Xcode”

Sign in under Xcode › Settings › Accounts, then run again.

The project has no development team. Choose one with --team or SOCHI_TEAM

Section titled “The project has no development team. Choose one with --team or SOCHI_TEAM”

You have several teams and the project doesn’t name one. Pass one: sochi run --team A1B2C3D4E5. sochi remembers it.

Some capabilities, marked (needs Apple approval) in sochi capabilities --all, only work once Apple has enabled them for your account. Signing fails until then.

Another build of this project is running (sochi, Xcode or xcodebuild)

Section titled “Another build of this project is running (sochi, Xcode or xcodebuild)”

Two builds can’t share the build database at once. Let the other one finish, then run again.

The built app’s bundle ID or platform doesn’t match what sochi expected. Try --fresh. If it keeps happening, report it as a sochi bug.

sochi skips installing when the device already has an identical build. Pass --fresh to reinstall anyway.

This project looks generated (found project.yml)

Section titled “This project looks generated (found project.yml)”

The project comes from XcodeGen or Tuist, so the next generation would undo sochi’s edit. Change the generator’s manifest instead, or pass --force.

Adding targets needs a folder-based project. Run sochi migrate first.

The project has more than one app target. Pick one with --target.

Edit didn't verify (…). No files were changed.

Section titled “Edit didn't verify (…). No files were changed.”

sochi wrote the edit, but the project didn’t read back the way it should have, so sochi restored every file. The message says which check failed.

The capability needs a value, such as a domain or an identifier. Pass it after the name. The message shows the expected format.

The same package changed in both sochi.toml and Xcode since the last sync. Edit one to match the other, then run sochi sync. See Keeping both sides in step.

Resolving packages failed; nothing was changed.

Section titled “Resolving packages failed; nothing was changed.”

xcodebuild couldn’t resolve the packages. Check the URL, the version rule and your network connection. The message includes xcodebuild’s own errors.

The repository has no version tags like 1.2.3. Use --branch or --revision instead.

The converted project wouldn't build the same, so nothing was changed

Section titled “The converted project wouldn't build the same, so nothing was changed”

The before and after builds compiled different sources or bundled different files. The list shows what differs. Usually a group needs fixing in Xcode first.

sochi can’t compare builds of a project that doesn’t build. Fix the build, or pass --no-verify.

Run the same build with xcodebuild to see Xcode’s raw output, or open an issue with the command you ran and what sochi printed.