eas build problem in managed workflow

I have a managed workflow project and after I’ve configured my “eas.json” and my “credentials.json” files and after doing all the required steps, I was trying to build using this command:
eas build --platform ios
Unfortunately, I have this error:
AssertionError: This function should be called only for managed projects

My project is a managed workflow and this is reflected in my “eas.json”, but I have no clue why this is happening.

hi there! this is because you have an ios directory, so it looks like a ‘generic’ project. i believe you downloaded your credentials locally, which put them in the ios/creds directory - this was a bug and they should have been placed elsewhere, we’ve fixed this and the fix will go out soon. for now, rename ios to something else like app-signing and then update credentials.json to point to the new place

1 Like

I’m having a similar issue, receiving the AssertionError when I try to build my project using eas build --platform ios. Although, in my case, I don’t have a credentials.json file—I let EAS handle signing for me.

I’m happy to provide specifics in a private message if it would help.

1 Like

do you have an ios or android directory in your project? what is the output of expo diagnostics? do you have a managed or bare project?

1 Like

Thank you a lot. That’s the reason actually.

Yeah that’s right i have an ios directory holding my certificates, thank you a lot.

So like they’ve said, if you’re managed workflow make sure you don’t have an ios or android directories in your root project.

I have both ios and android directories in my project. I ejected my app a while ago, so that I could use some unsupported React Native packages. My eas.json file still lists the workflows as being “managed.” Up until this week, though, I never had a problem using eas build with my existing repo, as is.

For what it’s worth, I’m able to build the app using eas-cli v0.15.1. It’s only in higher versions that the build command fails.

you should change the workflow to "generic" - if you use "managed" then we will run prebuild each time you build your app and clobber any custom changes you’ve made to your native projects.