Take the 2-minute tour ×

Sub: iPhone App : Beta testing on specific device before App goes to AppStore for public

How do you do specific beta testing?

I have registered 2 devices in App program portal. Only I have a Mac & device to download the App for testing. The other user does not have a Mac. But he has a iPhone. Is it possible for the other user to have the App downloaded for testing so we can discuss if we need any modifications before making the App live on AppStore for public.

I would appreciate any help. Thanks !

share|improve this question
Here is another similar question: stackoverflow.com/questions/40154/… –  Arne Evertsson Mar 11 '10 at 13:52
add comment

5 Answers

Use Ad Hoc distribution.

share|improve this answer
add comment

Follow the steps here to package the app for the tester. Publishing Applications for Testing

Then the tester should follow the steps here for installation. Instructions for Application Testers

Edit: Both links are to the reference documents from Apple itself and are likely to be kept more up to date as procedures change in later versions.

share|improve this answer
add comment

I have been successful with AdHoc distribution. Thought of posting this info for someone else so it will help.

  1. From Program Portal > Provisioning > Distribution, you need to create a AdHoc provisioning profile.
  2. Download the AdHoc mobile provisioning file and make sure it's installed in your machine.
  3. Followed by this you should go to xCode and build the project as you would for Distributing.
  4. Make sure you select the "AdHoc mobile provisioning" for Code Signing under Build section properties. And Entitlements.plist specified.
  5. Also verify Build results as per document says.

Follow the documentation from Program Portal user Guide, for Build steps.

Then you can drag the .app and .mobileprovision file (you used for AdHoc distribution) to iTunes account. It installs the App for you. You can then sync to device. It works great.

You need to send just the .app & .mobileprovision file to people who want to preview the App before it can go to AppStore. Their UDID's (device ID's) should have been registered in your Program Portal account.

share|improve this answer
add comment

The other use can drag your Ad Hoc build into iTunes on Windows. There are some pretty good instructions here.

To create an Ad Hoc build, you can follow the instructions in the iPhone dev portal. It is similar to doing a release build, just using a different provisioning profile.

share|improve this answer
add comment

Ad-hoc distribution to Windows iTunes works as it does for Mac iTunes. I set up my Xcode projects per Apple's instructions for ad-hoc distribution, then added my own Makefile to create the distribution. Makefile snippet:

AdHoc AppStore : 
    rm -rf iphone/build/$@-${DEVICE_SDK}/${APP_NAME}.app
    cd iphone ; xcodebuild -target ${APP_NAME} \
            -configuration $@ -sdk ${DEVICE_SDK}${SDK_VERSION}
    for f in embedded.mobileprovision CodeResources _CodeSignature/CodeResources ; do \
            [ -f iphone/build/$@-${DEVICE_SDK}/${APP_NAME}.app/$$f ] || \
                    { echo BITCH MOAN COMPLAIN : missing $$f ; exit 1 ; } \
    mkdir -p ${DISTRO_ROOT}/$@
    [ -f ${DISTRO_ROOT}/$@/$@.mobileprovision ] || \
            cp ${PROVISION_DIR}/$@.mobileprovision ${DISTRO_ROOT}/$@/$@.mobileprovision
    cd iphone/build/$@-${DEVICE_SDK} ; \
            rm -f ${DISTRO_ROOT}/$@/${APP_NAME}.app.zip ; \
            zip -r -y ${DISTRO_ROOT}/$@/${APP_NAME}.app.zip ${APP_NAME}.app
    cd ${DISTRO_ROOT}/$@ ; rm -rf ${APP_NAME}.app ; unzip ${APP_NAME}.app.zip ; \
            codesign -vvvvv ${APP_NAME}.app && rm -rf ${APP_NAME}.app || \
                    { rm -rf ${APP_NAME}.app ; exit 1 ; }
            rm -rf Payload ; mkdir Payload ; \
            ln -s ../${APP_NAME}.app Payload/ ; \
            zip -r ${DISTRO_ROOT}/$@/${APP_NAME}.ipa Payload

My project structure is ./Makefile and ./iphone/MyProject.xcodeproj with sources in the expected place ./iphone/Classes/*.[hm]. Makefile variable explanations:


I sym-linked Provisioning_Profiles to "Provisioning Profiles" for easier typing. I also hard-linked the appropriate provisioning profile in that directory as AppStore.mobileprovision or AdHoc.mobileprovision for easier updating.

The steps themselves are straight-forward: clear a build space, build the app, verify the code-signing bits are in place, prep a landing space for the distro, pull in the appropriate mobile-provision file, zip up the app, verify the signing, and zip up as an .ipa file. (Strictly speaking, the zipfile is needed only for AppStore, and the .ipa for AdHoc, but I put them both together for my own hysterical raisins. :-)

I then push the .ipa and the mobile-provision file up to a private website. My beta testers pull the .ipa down and drag-n-drop onto iTunes. Only if I add or remove a device does the mobile-provision change, thus forcing the beta testers to pull down and drag-n-drop the latest mobile-provision file.

This has worked very smoothly for me and my beta-testers on iClear (update in review).

share|improve this answer
add comment

Your Answer


