How to re-sign iOS IPA

I’m attempting to follow the instructions on this page:

What I would like to be able to do is:

  • use a previously-successful IPA artifact from my “alpha” workflow
  • modify a value in the Info.plist
  • re-sign it for app store distribution
  • submit to TestFlight
  • create a git tag

It recognize that it may not be possible to re-use and modify a previous IPA, but I’m interested in alternatives if not. It would be nice to re-use the same build number from my alpha IPA for the beta IPA.

At any rate, I could not find the “Re-sign IPA” workflow step in the list of available steps. Is it still there?

I’m currently playing with this also
"Re-sign IPA" is deprecated now, the new one is “Export iOS and tvOS Xcode archive”

And I don’t think you can modify the Info.plist (or another file) before resigning

Hi @lyricsboy ,
thanks for the question!

We do not have step to solve this and also this is not recommended to do (thats why we deprecated the resign ipa step, resigning an ipa is not supported by apple, so every solution is a workaround and really sensitive to changes around ios distribution).

Instead of resigning your ipa, you can export the .xcarchive file into an ipa file as may times and using as may distribution type as you want.
This is the way, how Xcode works as well, you can archive your project into an .xcarchive file, then you can export it into a .ipa file using the organizer window.

On bitrise you can achieve this by chaining xcode-archive step and export-xcarchive steps. xcode-archive step will export the generated .xcarchive file’s path into BITRISE_XCARCHIVE_PATH, which is the default value of export-xcarchive step’s archive_path input.
(xcode-archive step will export these .xcarchive file into an ipa as well)

You may generate a development ipa file, using the xcode-archive and generate an app store ipa using export-xcarchive step.

We do not have specific step to modify the Info.plist file embedded into an xcarchive.
You can modify the Info.plist file in your project using Set iOS Info.plist Values (unified) step.
So if you want to generate multiple ipas with different Info.plist files, you have to chain multiple xcode-archive steps.

To submit to Itunes Connect you can use either deploy-to-itunesconnect-deliver or deploy-to-itunesconnect-shenzhen steps.

Use git-tag step to solve this.

Please have a look on our Integration Page for more steps.

1 Like

Thanks for the comprehensive response, godreikrisztian!

I can live with the requirement to create a new archive in order to achieve what I want.

I have an “alpha” workflow that is set up to archive, sign with ad hoc provisioning, and distribute via bitrise. This uses the alpha workflow’s build number to set the app’s build number.

I would like to be able to use the same build number for my “beta” workflow that will be distributing to TestFlight. Is there some way to pass that variable along?

In other words, we decide that we like build 123 in alpha testing, and we want to promote it to beta as build 123 from the same commit, with different configuration. That’s the real goal.

1 Like

Ah, it looks like from the “Advanced” start a build configuration UI I can add custom environment variables for the build.

And the handy curl command it generates could make that easy to script. I think I will try that approach.

1 Like

You should be able to modify the archive before exporting it again. I am attempting to do something similar. In my case I need to change the icon and bundle id for internal testing and customer testing of the same build.

I will report back if I can get it to work.

1 Like

I believe the icon can be changed, but not sure about the bundle ID. Did you manage to make it work @respectTheCode?