Can you sign an IPA online?
Not safely, and you probably don't need to. Signing an iOS app requires your Apple distribution certificate and its private key. Any website offering to sign an .ipa for you is asking you to upload that key. Whoever holds it can ship software signed as you. BetaDrop does not offer online signing, and we'd suggest not using anything that does.
The good news is that most people who search for this already have a signed build. What they're actually stuck on is getting it onto someone else's phone. That part is easy, and it doesn't involve re-signing anything.
Never upload a .p12 or private key to a website
A distribution certificate's private key is the credential that proves an app came from you. Leaked, it can be used to sign malware that installs on your users' devices carrying your identity. Revoking it breaks every ad hoc or in-house build you have already handed out. Signing belongs on a machine you control.
Do you actually need to re-sign?
Ad-hoc distribution means the build installs only on devices whose UDIDs were in the provisioning profile at signing time. With that in mind:
| Your situation | Re-sign? | What to do |
|---|---|---|
| Exported from Xcode or CI as ad-hoc | No | It is already signed. Share it. |
| Tester's device not in the profile | No — rebuild | Add the UDID in the Apple portal, then rebuild. |
| App Store build, want to test ad-hoc | Yes | Re-export from Xcode with an ad-hoc profile. |
| Certificate expired | Yes | Renew the certificate, then rebuild. |
You only have someone else's .ipa | Can't | You need their signing identity. Ask them to rebuild. |
Notice how often the answer is “rebuild” rather than “re-sign”. Re-signing an existing binary is a workaround for not being able to build; if you have the project, building again is simpler and safer. And no signing, online or local, turns an Android build into an iPhone one: an .apk has to be rebuilt for iOS from its source, which is why no APK to IPA converter exists.
How to sign for ad-hoc distribution
- Collect each tester's UDID. The UDID checker gets it from their device in a couple of taps.
- Add those UDIDs to your Apple Developer account and regenerate the ad-hoc provisioning profile.
- In Xcode: Product → Archive → Distribute App → Release Testing (called Ad Hoc before Xcode 15; the ExportOptions plist value is
release-testing), selecting that profile. On CI, fastlane'sgymstill takes only the old names, up to fastlane 2.240.1: keep itsexport_methodonad-hoc, which Xcode still accepts with a deprecation warning, or export withxcodebuild -exportArchiveand an ExportOptions.plist whose method isrelease-testing. The ExportOptions.plist generator writes that plist. - Check the result with the provisioning profile decoder or the IPA inspector. Both show which devices the build will actually install on.
Every step runs on a machine that already holds your signing identity. That is the whole reason online signing services shouldn't exist.
Getting the signed build to your testers
Once the .ipa is signed, BetaDrop turns it into an install link and QR code. It generates the itms-services manifest iOS needs, so a tester installs straight from Safari. No TestFlight, no App Store review, no tester account. Your signing key never leaves your machine, because we never ask for it.
Still working out whether you need to pay Apple for any of this? What a free Apple developer account can and cannot do covers where the line sits.
Frequently asked questions
Can I sign an IPA online?
Not safely: every "sign IPA online" service needs your Apple distribution certificate and its private key uploaded, and whoever holds that key can ship software signed as you. Signing belongs on a machine you control (Xcode, fastlane, or your CI), and BetaDrop never asks for it.
Do I actually need to re-sign my IPA?
Usually not. If you exported the .ipa from Xcode or a CI build, it is already signed and ready to install. Re-signing is only needed when the build was signed for a different purpose than you are using it for. That covers an App Store build you now want to install ad-hoc. A missing tester device is usually fixed by registering it and rebuilding rather than re-signing.
Why does my IPA fail to install on a tester's iPhone?
The most common cause is that the device's UDID is not in the provisioning profile the build was signed with. Ad-hoc distribution only installs on devices listed in the profile. Check the profile with the provisioning profile decoder, collect the tester's UDID, add it in the Apple Developer portal, then rebuild. Re-signing an existing .ipa is not required if you can rebuild.
How do I sign an IPA for ad-hoc distribution?
In Xcode: Product → Archive → Distribute App → Release Testing, which signs automatically against the devices registered in your Apple Developer account; choose Custom if you need to name the profile yourself. Release Testing is the preconfigured option that replaced the command line name ad-hoc; Xcode 15.4 deprecated ad-hoc, and current Xcode still accepts it with a warning (xcodebuild -help on Xcode 27.0 lists it as deprecated in favour of release-testing), and Ad Hoc still appears under Custom. The ExportOptions plist value is release-testing. On CI, fastlane's gym has not caught up: every released version up to 2.240.1 rejects release-testing as an export_method, so either keep gym on the old ad-hoc name or export with xcodebuild -exportArchive and a plist whose method is release-testing. Both run on a machine that already holds your signing identity, which is the point.
What is the difference between ad-hoc, enterprise and App Store signing?
Ad-hoc installs only on devices whose UDIDs are in the provisioning profile, capped at 100 per device type per year. Enterprise (Apple Developer Enterprise Program) installs on any device but is licensed strictly for internal employee use. App Store builds install only through the App Store or TestFlight. For beta testing with outside testers, ad-hoc is the normal choice.
Can BetaDrop distribute a signed IPA without TestFlight?
Yes. Upload a signed .ipa and BetaDrop generates an itms-services over-the-air manifest, so a tester installs straight from Safari on their device. There is no App Store review and no tester account. The build must already be signed, and the tester's device must be covered by its provisioning profile.