`exp build:ios` is not using existing certificates?

I’m trying to deploy a new build (going from expo v15 to v17). When I build for iOS, it is not letting me use the “Let Exponent handle the process!” options b/c it’s trying to re-generate certificates instead of using the existing one.

Do I need to download and generate our own P12 file?

Here’s my experience:

We need your Apple ID/password to manage certificates and provisioning profiles from your Apple Developer account.
? What's your Apple ID? xxx@xxxxxx
? Password? ***********
? What is your Apple Team ID (you can find that on this page: https://developer.apple.com/account/#/membership)? xxxxxxx
[exp] Validating Apple credentials...
[exp] Credentials valid.

? Do you already have a distribution certificate you'd like us to use,
or do you want us to manage your certificates for you? true
[exp] Generating distribution certificate...
[exp] Error validating credentials. You may need to clear them (with `-c`) and try again.
[exp] Unable to fetch distribution certificate: Unable to add new certificate to your account (maximum number reached). Please delete one of your certificates or upload an existing one.

hello! are you 100% sure that your expo account that you are signed in as, your project slug, and your apple account are all the same?

Yes. I did exp whoami and it gave me the correct login.

Follow up:

This was solved by deleting the existing certificates and re-submitting.

1 Like

How do you do that? how do you delete the existing certificates?

Use the -c flag (see --help too).

Just had the same problem today. I did not change anything on my computer. It’s been a month that I did not build any iOS version and it asked me for certificates. I was logged in, I was on the same computer without clearing any folders and I used the same Apple ID.

The only thing different was that I updated “exp” version from 47.4.1 to 48.0.2

Don’t know if it matters… anyways I had to give back my certificates and .mobile provisioning profile

I’m having the same kind of issue. Released on the store an app one month ago, came back to make so fixes. When i wanted to build, it said:

[exp] No currently active or previous builds for this project.
[exp] We do not have some credentials for you, provisioningProfile

But I already built it for my first release. What could have changed between?
I’m kind of lost here and I really need to upload my new build :confused:

hi @arivest,

From the last time you used exp, the authentication of apple credentials and their files flow changed to now being entirely on your machine, it used to be done on ours. Our servers used to make the provisioning profile for you but now it is expected that your local copy of exp will do the necessary work. Because of that, we don’t have your provisioning profile.

The easiest way to get past this is to revoke your existing certs and let exp create new ones and a provisioning profile for you.

You can revoke, create new certs, build an IPA with one command:

exp build:ios -c --revoke-apple-dist-certs  --revoke-apple-push-certs

This will let you interactively revoke the certs on developer.apple.com and remove the existing ones from our servers. (You can also just go to developer.apple.com and do it by hand). Then it will create new certs, provisioning profile, persist to our servers (we don’t keep your apple ID or password), and build your IPA.

If you don’t want to revoke any certs, then do:

exp fetch:ios:certs

And this will give you dist cert and push cert, then you do:

exp build:ios -c 

Which will delete those certs from our servers, it will also ask if you will let exp handle the process of making certs with the chance to override. At those steps, you provide paths to those files that you got with the exp fetch:ios:certs command and then exp will create the provisioning profile, persist it, build the IPA.

(I recommend the first one more if you can)

3 Likes