Is an app rebuild via "eas build" the only way to apply a new Distribution Certificate to an existing app?

I want to confirm something regarding taking action when a Distribution Certificate is about to expire. Please note, we have an (in-house) company app that has “enterpriseProvisioning” set to “universal”. In other words, for iOS users, they do not get the app through the App Store. We provide a link and they download that way.

My question is this: is re-building the app the only way to apply a new Distribution Certificate? In other words, is there any other way to apply a new Distribution Certificate to an existing build that users are using? We built the current production app using “expo build”. And while we have a new version available, built via “eas build”, we would prefer more time before pushing this new version to production. But seeing that our current production Distribution Certificate expires next week, it looks like we’ll have to push the new version with the new Distribution Certificate to production before then. But I just wanted to confirm that there are no other options first.

Hi @darrenbrett

They have recently implemented eas build:resign. I think it’s what you’re looking for.

See the changelog that they’ve just created at expo.dev/changelog:

That sounds potentially promising, but to clarify, will that work for “enterpriseProvisioning” : “universal” configurations? And will that work if the current production version was built via “expo build”? Perhaps that doesn’t matter? I guess in this case it doesn’t actually rebuild the javascript? In other words, does eas build: resign only touch the provisioning profile - leaving the app code alone? And if that’s the case, the users would just need to download from our company link source again once the build had been “resigned”? Does that sound right?

Sorry, I am not really sure if it works with "enterpriseProvisioning": "universal", although I suspect it would. I’m just an Expo user and have not actually tried eas build:resign myself.

Given that it’s an eas command and that it seems to want things like the EAS profile etc., I suspect it won’t work for an app that was built with expo build. But I suppose it might be possible to do it manually. I’d google stuff about manually signing iOS apps.

As far as I know, yes.

I think so.