Tutorial
You drive Odevio entirely through your AI agent, in plain words - there are no Odevio commands to learn. Once it is set up (see Installation), open your agent in your Flutter project’s folder and tell it what you want:
Get my app onto my iPhone
Or type /odevio to start it explicitly. The agent works out what needs doing; if your Apple account
and app are already set up, it asks nothing and gets straight to work.
Odevio works with any AI agent that supports the open Agent Skills standard - Claude Code, Codex, Cursor and Gemini CLI are supported today.
Make it your repo’s convention
Drop this into an AGENTS.md at your project root and any agent that reads it - Claude Code, Codex,
Cursor, Gemini CLI and more - will reach for Odevio whenever iOS comes up:
## iOS builds and releases
This project ships to iOS through Odevio - no Mac or Xcode required. To build,
install on a device, or publish to TestFlight or the App Store, use the Odevio
skill: run `odevio skill install` once, then ask in plain words (for example
"put my app on my iPhone" or "publish to the App Store"). Do not attempt a local
xcodebuild or fastlane - drive Odevio instead.
What you can ask
Get my app onto my iPhone is one example. Depending on what you ask for, the agent can also:
show you your app running on one of our Macs, in the iOS simulator - this needs no Apple account at all
check that your app builds for iOS, without publishing anything
fix build errors on its own, then start again, until it works
share it through TestFlight with your testers
send it to the App Store, ready for you to submit
This is for you if you would rather not learn what a provisioning profile is.
Note
Only the first item works without a paid Apple Developer account. To reach a real iPhone you need one - 99 € per year, no way around it. Everything else is handled for you.
What it will ask you, and why
It only stops when the answer is something no one else can give:
What it asks |
Why |
|---|---|
What you want to do with your app |
Trying it on your own phone, sharing it with testers and publishing on the App Store are three different jobs |
To sign in to Odevio |
The command asks for a password, which it cannot type for you |
Whether you have a paid Apple Developer account |
Without one, nothing can reach a phone |
Your Apple API key |
Only you can create it, in your Apple account. It walks you through where to click |
Your app’s name, and confirming its identifier |
The name is your choice; it proposes the identifier so you do not have to understand the format |
To create the app once in App Store Connect |
Apple does not allow this to be automated. About two minutes, once per app |
Everything else - versions, certificates, signing, build numbers - it works out by itself.
While it is working
Your project is compiled on a real Mac, so expect around fifteen minutes for a build - longer for a large app, and longer again if all our machines are busy and yours waits for the next free one.
There is nothing for you to do in the meantime. The agent tells you when it starts, keeps you posted as it goes, and you can ask it where things are at any time - or tell it to stop.
If your app fails to build, it reads the error, fixes your code, and starts again - up to three attempts, then it stops and explains what it found rather than making things worse.
What you get at the end
Depending on what you asked for:
Running on a Mac we provide - you get connection details for a remote desktop, with your project and the iOS simulator already there, so you can watch your own app run. No Apple account needed. You will need a VNC client on your computer, and the machine stays available for an hour
On your phone straight away - you get a link and a QR code. Scan it with your iPhone camera and the app installs like any other. Your device needs to be registered on your Apple account once, which is easiest from a Mac - if you are on Windows or Linux, TestFlight below is the shorter path
Through TestFlight - Apple processes the build on its side first, usually five to thirty minutes, then it appears in the TestFlight app. Handy for sharing with a few people
On the App Store - the build is uploaded, and you then fill in the description, screenshots and privacy answers in App Store Connect and submit it
Warning
A successful build does not mean a published app. Apple reviews every App Store submission, which takes from a few hours to a few days, and it can be refused - most often for a missing privacy policy, or for an app judged too limited. That part is between you and Apple.
If it goes wrong
“You need to sign in first” - run odevio signin in your terminal, then tell the agent it is
done.
“The Odevio command is not installed” - run pip install odevio. If it still cannot find it, your
terminal and your Python installation may not agree; pip --version and odevio --version tell you
what is available.
Your app never shows up in TestFlight - usually Apple’s encryption question left unanswered. The agent normally handles this for you; ask it to check.
Your build seems stuck waiting - our Macs may all be busy, or one may need attention. The agent tells you rather than waiting for ever.
Never paste your password or the contents of your Apple key file into the conversation. The agent is built to refuse them, and asks for a file path instead.
Using it without an agent
Everything the skill does, you can do yourself with the CLI: see the CLI tutorial and the Reference Guide. And for automated pipelines, see CI/CD. The Apple side is the same whichever route you take.