AppForShareCreate a free account

Re-sign a build with a new profile, without building again

Pro and Team (by hand); Team also automatic inside Hands free

A new tester sends an iPhone UDID. You register it on Apple and remake the ad hoc profile, and then the slow part starts: open the project, archive, export and upload again, only so the build carries a profile that lists one more device.

With re-signing, that last step is one button. Pick the new profile, and AppForShare signs the build you already uploaded with it and saves the result as a new build of the same app, with the same release notes. The tester gets the install email when it is ready.

Example

Shop 2.4.0 (88), iOS

  • Re-signed fromBuild 88, uploaded Nov 7
  • ProfileShop Ad Hoc, 23 devices (3 new)
  • Bundle ID, version, buildUnchanged
  • SHA-256New file, new hash; the source build keeps its own
Example values. App Store profiles are refused.

Made for

  • Developers who add iPhone testers in the middle of a test round
  • Agencies whose client testers join late and cannot wait for the next build
  • Teams whose build machine or CI is busy, broken or owned by someone else

What it ends

  • Rebuilding the same commit only to include one more device
  • A tester waiting a day because the developer was away from the Mac
  • Several versions of "the same" build with no record of which one testers got

How it works

  1. Step 1

    Add your signing certificate once

    An Owner or Admin adds the workspace's Apple Distribution or Apple Development certificate as a .p12 with its password in Settings, iOS re-signing. It is encrypted with Google Cloud KMS and never shown again.

  2. Step 2

    Pick the new profile

    On the build page, Re-sign with a new profile: choose an ad hoc, development or enterprise profile from your connected Apple account, or upload a .mobileprovision (one per app extension). With none picked, the best one for the bundle ID is used.

  3. Step 3

    Check, then confirm

    AppForShare first checks the profile, the certificate and the devices, and tells you what would change. Confirm and the build goes to the queue.

  4. Step 4

    A new build is ready

    The re-signed build gets its own link and goes through the usual upload checks. Enrolled testers whose device is now in the build get the install email.

What changes and what does not

Re-signing replaces the provisioning profile and the signature of the app and its extensions. The bundle ID, the version and the build number never change. Entitlements come from the new profile; you can choose to keep the app's own where the profile allows them.

The result is a new build ("Re-signed by AppForShare with profile <name> from build X") with the same release notes and password. The source build, its link, its SHA-256 and any client sign-off on it stay exactly as they were, so your records still match what was approved.

Your certificate stays sealed

The .p12 and its password are sealed with Google Cloud KMS, like store keys. The worker opens them for one signing run in a private temporary folder and removes them after. No API, CLI or MCP tool ever returns them, and they are never logged. The dashboard shows the name, team, kind, SHA-1 and expiry only. Adding and removing the certificate are lines in the activity feed.

Signing runs on our servers with rcodesign, the open source Apple code signing tool from the apple-codesign project.

Automatic on Team

With Hands free on, a new iPhone sent through the onboarding link is registered on Apple and the ad hoc profile is made again. When the project has no GitHub iOS build, Hands free then re-signs the newest iOS build of the project with that profile, and each enrolled tester gets the install email when it is ready. If it fails, the owner gets one email saying why.

From the CLI and your AI assistant

appforshare resign <id|slug> [--profile <file.mobileprovision|name>] [--merge-entitlements] --yes queues a re-sign; without --yes it only runs the check. The MCP tool resign_build does the same for a Developer, with confirm: true, and build_info shows the last re-sign.

Good to know

Questions

Does it change my version or build number?
No. Bundle ID, version and build number stay the same. Only the profile and the signature change, and the result is saved as a new build.
What happens to the original build?
Nothing. It keeps its link, its SHA-256 and any sign-off. The re-signed build is a separate build with its own link.
Which certificate do I need?
An Apple Distribution certificate for ad hoc and enterprise profiles, or an Apple Development certificate for development profiles, exported as a .p12 with its private key.
Can I re-sign a build for TestFlight or the App Store?
No. App Store profiles are refused. Send the App Store build you exported to TestFlight with store upload instead.
Does it work for Android?
No. On Android, AppForShare signs only the APK it makes from an .aab, with a test key or your own keystore. Uploaded APKs are never re-signed.
Which plan do I need?
Pro or Team to re-sign by hand. Automatic re-signing inside Hands free is on Team.

Read next

Try it on your own app

Free account in a minute. Pro starts with a 7 day free trial.

More features