Remotely distribute an iOS app compiled in Xcode 7 without App Store, developer program sub, or jailbreak?

The answer is almost YES!

I managed to install new builds of the same app on the devices via Fabric.io without apple dev subscription. (I guess you can also distribute them with iTunes. Send ipa to tester, and it should be able to install it via iTunes.)

The only disadvantage is that you have to connect the device to Xcode at least once. Then you can remotely install new versions. (I didn't find the way to do it manually knowing the udid)

When you connect the "unknown" device to xcode 7, there is a fix issue button in Target general settings. Fix the issue and Xcode will generate a new Provisioning profile with this device included. (you can find it in ~/Library/MobileDevice/Provisioning Profiles)

Than you can use this provisioning profile to distribute apps via Fabric.io

  1. Signup on Fabric.io
  2. Setup Fabric for your project (there is a step by step guide)
  3. Make sure that xcode uses right prov. profile to sign it. Automatic worked for me.
  4. Xcode>project>archive
  5. fabric helper will detect the build and you will be able to distribute it.

Sorry guys who are not proficient enough with Xcode, I don't have much time to add less error prone guide, but I hope this answer will help somebody with ideas.

TIP: use this quicklook plugin to see inside ipas and prov. profiles!


As of some version of iOS 9.x released since my answer was originally posted, this is no longer even a possibility. Apple now restricts OTA downloads to non-free accounts, as shown by errors in the device logs upon the install failing.

I have tested this extensively, as this would be amazing for my apps too.

Can I distribute my apps OTA without a Developer Program Membership (costs money)?

You can create and sign an IPA and create the Manifest file for it, but it will fail to install on the device. The reason for this is Xcode needs to configure the IPA for that device (supposedly signing it properly with the UDID). You can even see this happen if you try to plug in a new device to the Mac and run your app via Xcode on it. The short answer is no.

What can I do to make this work?

You can sign up for the Developer Program with Apple (costs money) and add the UDID of his device to your profile, then create an IPA and manifest file, upload them to a web server and send him the URL.

It really is for security, as the price barrier is usually what stops malicious apps from being distributed over the web. Not to mention keeping the majority of app downloads in the App Store.

I've signed up for the developer program? How do I distribute it now?

You must have a HTTPS web server (and a SSL certificate which you can make your own root for). You also must have added their UDID to your Developer profile (I'm not exactly sure how to do this). You must use Xcode to create the IPA (Product > Archive > Export > Save for Ad-hoc Deployment > Sign in with Apple ID > Follow instructions) and you will get a Plist and an IPA file. Put those both on your server and change the values in the Plist file to match the HTTPS URLs on your server. Then you use a special link to link to the Plist manifest, and it will pop up asking the user to install your app. If everything goes right, the user will have your app. You also have to code your own update method if you want that.

If this is an app you want to distribute at this point, it might make more sense to actually put it on the App Store, or if this is for beta testing use TestFlight. If you have a developer account you can use TestFlight and skip all of this stuff for app testing. All you need is their email and to get them to install the TestFlight app from the App Store. TestFlight can be managed from iTunes Connect.