How do you beta test an iphone app?

197,964

Solution 1

In year 2011, there's a new service out called "Test Flight", and it addresses this issue directly.

Apple has since bought TestFlight in 2014 and has integrated it into iTunes Connect and App Store Connect.

Solution 2

Creating ad-hoc distribution profiles

The instructions that Apple provides are here, but here is how I created a general provisioning profile that will work with multiple apps, and added a beta tester.

My setup:

  • Xcode 3.2.1
  • iPhone SDK 3.1.3

Before you get started, make sure that..

  • You can run the app on your own iPhone through Xcode.

Step A: Add devices to the Provisioning Portal

  1. Send an email to each beta tester with the following message:

    To get my app on onto your iPhone I need some information about your phone. Guess what, there is an app for that!

    Click on the below link and install and then run the app.

    http://itunes.apple.com/app/ad-hoc-helper/id285691333?mt=8

    This app will create an email. Please send it to me.

  2. Collect all the UDIDs from your testers.

  3. Go to the Provisioning Portal.

  4. Go to the section Devices.

  5. Click on the button Add Devices and add the devices previously collected.

Step B: Create a new provisioning profile

  1. Start the Mac OS utility program Keychain Access.

  2. In its main menu, select Keychain Access / Certificate Assistant / Request a Certificate From a Certificate Authority...

  3. The dialog that pops up should aready have your email and name it it.

  4. Select the radio button Saved to disk and Continue.

  5. Save the file to disk.

  6. Go back to the Provisioning Portal.

  7. Go to the section Certificates.

  8. Go to the tab Distribution.

  9. Click the button Request Certificate.

  10. Upload the file you created with Keychain Access: CertificateSigningRequest.certSigningRequest.

  11. Click the button Aprove.

  12. Refresh your browser until the status reads Issued.

  13. Click the Download button and save the file distribution_identify.cer.

  14. Doubleclick the file to add it to the Keychain.

  15. Backup the certificate by selecting its private key and the File / Export Items....

  16. Go back to the Provisioning Portal again.

  17. Go to the section Provisioning.

  18. Go to the tab Distribution.

  19. Click the button New Profile.

  20. Select the radio button Ad hoc.

  21. Enter a profile name, I named mine Evertsson Common Ad Hoc.

  22. Select the app id. I have a common app id to use for multiple apps: Evertsson Common.

  23. Select the devices, in my case my own and my tester's.

  24. Submit.

  25. Refresh the browser until the status field reads Active.

  26. Click the button Download and save the file to disk.

  27. Doubleclick the file to add it to Xcode.

Step C: Build the app for distribution

  1. Open your project in Xcode.

  2. Open the Project Info pane: In Groups & Files select the topmost item and press Cmd+I.

  3. Go to the tab Configuration.

  4. Select the configuration Release.

  5. Click the button Duplicate and name it Distribution.

  6. Close the Project Info pane.

  7. Open the Target Info pane: In Groups & Files expand Targets, select your target and press Cmd+I.

  8. Go to the tab Build.

  9. Select the Configuration named Distribution.

  10. Find the section Code Signing.

  11. Set the value of Code Signing Identity / Any iPhone OS Device to iPhone Distribution.

  12. Close the Target Info pane.

  13. In the main window select the Active Configuration to Distribution.

  14. Create a new file from the file template Code Signing / Entitlements.

  15. Name it Entitlements.plist.

  16. In this file, uncheck the checkbox get-task-allow.

  17. Bring up the Target Info pane, and find the section Code Signing again.

  18. After Code Signing Entitlements enter the file name Entitlements.plist.

  19. Save, clean, and build the project.

  20. In Groups & Files find the folder MyApp / Products and expand it.

  21. Right click the app and select Reveal in Finder.

  22. Zip the .app file and the .mobileprovision file and send the archive to your tester.

    Here is my app. To install it onto your phone:

    1. Unzip the archive file.

    2. Open iTunes.

    3. Drag both files into iTunes and drop them on the Library group.

    4. Sync your phone to install the app.

Done! Phew. This worked for me. So far I've only added one tester.

Solution 3

Note that there is a distinction between traditional "beta testing" which is done by professional QA engineers, and "public beta testing" which is releasing your product to the public before it's ready : )

You can do "beta testing" -- loading to specific iPhones/iPods your testers will be using. You can't do "public beta testing" -- pre-releasing to the public.

Solution 4

In 2014 along with iOS 8 and XCode 6 apple introduced Beta Testing of iOS App using iTunes Connect.

You can upload your build to iTunes connect and invite testers using their mail id's. You can invite up to 2000 external testers using just their email address. And they can install the beta app through TestFlight

Solution 5

Diawi Alternatives

Since diawi.com have added some limitations for free accounds.

Next best available and easy to use alternative is

Microsoft

https://appcenter.ms

Google

https://firebase.google.com/docs/app-distribution/ios/distribute-console

Others

https://hockeyapp.net/

http://buildtry.com

Happy build sharing!

Share:
197,964
Michael Pryor
Author by

Michael Pryor

President Fog Creek Software Inc. CEO Trello Inc.

Updated on March 03, 2020

Comments

  • Michael Pryor
    Michael Pryor over 4 years

    How can you beta test an iPhone app? I can get it on my own device, and anyone that gives me a device, I can run it on theirs, but is there a way to do a limited release via the app store for beta testing?

    Related: Also, see this question on getting your app onto phones without using the App Store.

  • Josh Brown
    Josh Brown about 14 years
    In Step C, 18 - I'm not seeing a Code Signing Entitlements in the Code Signing section. Did I miss a step?
  • Arne Evertsson
    Arne Evertsson about 14 years
    What do you see in that section? I have, from the top: Code Signing Entitlements, Code Signing Identity, Code Signing Resource Rules Path, Other Code Signing Flags.
  • Josh Brown
    Josh Brown about 14 years
    I have everything besides Code Signing Entitlements.
  • Josh Brown
    Josh Brown about 14 years
    This question answers it: stackoverflow.com/questions/1371499/…
  • Josh Brown
    Josh Brown over 13 years
    From my experience, TestFlight is a much better solution than anything else out there.
  • DanF
    DanF about 13 years
    This one is about 10x prettier than "ibetatest.com", which is currently voted higher here. It also really explains all the steps in using itself, while ibetatest was resorting to a very dry video to explain the process.
  • Arne Evertsson
    Arne Evertsson almost 13 years
    I'm not going to have the time to update for XCode 4 for a while. Perhaps somebody else will give it a shot?
  • Danyal Aytekin
    Danyal Aytekin over 12 years
    In Xcode 4 you don't need the entitlements.plist file for ad-hoc distribution. It can make the developer certificate for you too.
  • hokkuk
    hokkuk over 12 years
    this blog post by jj0b musicalgeometry.com/?p=1237 adds xCode 4 steps to the ad hoc distribution process
  • Duck
    Duck over 12 years
    the big question is this: how do I user can discover his own UDID on an iPad 2, with iOS5 without owning a computer? I don't see this item on any menu.
  • Michael Todd
    Michael Todd over 12 years
    Except that a lot of companies seem to do it all the time.
  • beryllium
    beryllium over 12 years
  • Arne Evertsson
    Arne Evertsson about 11 years
    @bobobobo Not sure. Please update my answer if you feel like it.
  • RileyE
    RileyE about 11 years
    @bobobobo The answer below mentioning "Test Flight" is a more relevant and easy solution. It manages all of this and A LOT more. Check it out.
  • Kerni
    Kerni over 10 years
    That does NOT mean that iOS provisioning requirements do not apply.
  • Ender2050
    Ender2050 about 10 years
    Testflight seems to have disabled their SDK for new accounts in 2014. We're using HockeyApp and having success with it - very nice app.
  • Oscar Salguero
    Oscar Salguero over 9 years
    I use TestFlight to beta test my Apps distributing them to friends and family. Apple acquired TestFlight and since Xcode 6 and iOS 8 it is available for iOS Developers for FREE.
  • TheBasicMind
    TheBasicMind over 8 years
    For anyone interested I have created a very lightweight but very effective open source framework you can include in your app, that will provide you with an easy way to get feedback from your beta testers right in the app by posting it into Slack. It's called SlackReporter and can be found at GitHub.com/TheBasicMind/SlackReporter I've ensured it is super easy to integrate too. For my own beta tests I instruct my testers the can give feedback by turning the handset upside down and giving it a shake. If that's too obscure for you, there are many different options for invoking the forms.