Do local builds support using the Xcode cloud-managed certificates?

We’re trying to do a PoC with Expo to determine if we can use our own existing Mac CI for builds. I understand there’s a --local flag for eas build, but the command seems like it really wants a production distribution certificate to build the app.

Two issues with this:

  1. At this point, I just want to build a development IPA (not to be confused with an Expo development build), not an App Store build.
  2. My Apple ID has access to the Xcode Cloud Managed certificate for production builds, but eas-cli doesn’t seem to be aware of this, and wants to generate a new cert. Our account already has the maximum number of production certs, so I cannot do this (and shouldn’t have to anyways).

Anybody have experience with building locally/in their own CI, and have any helpful info? Thanks!

  1. No it’s not possible to build IPA using a developer certificate with EAS Build (and --local options runs exactlly the same code as cloud builds, just on your machine, so the same limitations apply). Dev certs are not part of the EAS functionality for technical reasons but I think there were also legal reasons for that. If I remember correctly you can install dev cert signed app with expo run:ios command, but it’s not creating an IPA, it’s just installs the dev signed app on the local iphone.

  2. In general there is no way to download the distribution certificate after it’s created, so cli has to revoke one of them, to generate new one, because it can’t download the existing one. I’m not familiar with what “Xcode Cloud Managed certificate” is, but if it provides a way to download existing certs, you can download the cert from there and upload it to expo when building with cli or via website.

  • If you want to do local development then expo run:ios or directly in xcode is a proper way to go.
  • If you want to build on CI to upload to the store or to sideload(Ad-Hoc or Enterprise) you need to use distribution certificates.
  • If you want to have CI that just tests if sth builds correctly, you can do simulator builds.

Thanks, it sounds like building an ad-hoc that contains all of our developer devices (which I think is essentially what an Apple developer build is anyways), is what we’d need to do.

An Xcode Cloud Managed Certificate is a cloud hosted cert that you don’t need to download to your machine, your user just needs access to it on Apple’s end. It was added in Xcode 13 in 2021. It’s especially useful for CI, since setting up a distribution cert is one less manual piece of setup that needs to be done on every CI machine. You also don’t need to worry about it expiring.

Thanks for the info.