Most applications (even Android apps, on some stores) will have to pass an approval process before being distributed, so testing is mandatory to make sure your app reaches the market and succeed in winning your customers. The testing process can take several forms, from developer-level unit testing to managing beta testing across a wide variety of hardware.
Various distribution methods allow you to test variants of your app that are built locally by Xcode. Testers don’t necessarily need to be team members or iTunes Connect users to run the app, but their devices must be registered in the developer account. Up to 100 devices/product, family/year can be registered that your team uses for development and testing. The following options can be used if you can afford to use a portion of these devices for testing and can collect device IDs from your testers.
There are several methods of distributing apps to iOS, whether it’s distributing custom apps within the enterprise or apps for the public app store. The different methods can be basically characterized by two qualities: The delivery of the binary app delivered to a device and the licensing. The below table will help in choosing what’s right for you.
iOS Developer Enterprise Program
The iOS Enterprise Distribution program allows an enterprise to distribute their own in-house apps directly. It is only meant for employees of the licensee company where the licensee ought to be an organization or company that has a DUNS number. The cost is comparatively higher at $299 per year for this license as opposed to $99 per year for the iOS Developer License. A given device can have apps installed from only one iOS Enterprise License at a time.
*Note: The following is an excerpt from the iOS Enterprise Distribution License Agreement
Under this Agreement Internal Use Applications developed can be deployed on Deployment Devices in two ways:
(1) Deployment for internal use by Employees
(2) Deployment for use by Customers either on Your physical premises or under the direct supervision and physical control of Your Employees in other locations, subject to Apple’s right to review and approve such deployment as set forth herein.
Pros
- The App Store approval process is not necessary.
- It won’t be there on the App Store. The public may not see a listing for your app, purchase or install it.
- N number of users within the enterprise can use the account to distribute the app.
Cons
- The Enterprise program is intended for employees, and Only for the contractors or employees, the enterprise program is intended for.
- The licensee is responsible for distributing and updating the app which can be done manually by email, making the app available on an Intranet site, through a Mobile Device Management System (MDM),
- It’s only $99 per year for the iOS Developer Account while the cost is comparatively higher for the Enterprise Developer Account at $299 per year.
*Note: Only enrollment in the standard iOS Developer Program will enable you to deploy apps to the Public App Store as the Enterprise program does not enable it.
Ad Hoc Provisioning Profiles
An ad hoc provisioning profile is a distribution provisioning profile that doesn’t require the assistance of Xcode and enables your app to be installed on designated devices and to utilize app services. It’s one among the two types of distribution provisioning profiles that you can create for apps. (You use the other kind of distribution provisioning profile later to submit your app to the store). An ad hoc provisioning profile guarantees that test versions of your app are not copied and distributed sans your approval.
Once you’re ready to distribute your app to testers, you can create an ad hoc provisioning profile specifying an App ID that matches one or more of your apps, a set of test devices, and a single distribution certificate.
In an ad hoc provisioning profile, each device is identified by its unique device ID (UDID). The developer account stores the registered devices that are added to the provisioning profile. Up to 100 devices per product family per membership year for development and testing by each individual or organization. 100 devices of each type can be registered per year. In this type of provisioning,100 iPad, 100 iPhone, and 100 iPod Touch devices can be registered for iOS apps.
Exporting Your App for Testing Outside the Store
Since testers don’t have Xcode to run your app, you should create an iOS App file (a file with an. ipa filename extension) which is used to install your app on tester’s device. This method is used to test a universal app that runs on all supported devices or test device variants that the store distributes later to users.
Pros
- The approval process from App Store is not required.
- The listing, purchase or app installation will not be visible to the public.
- Over-the-air installation from a hyperlink (hosted on your web server or on an iOS Beta Testing Service *mentioned next) or by email to a computer with iTunes installed (and then installing to the device).
Cons
- Limitation of 100 devices (devices can be removed/replaced once during each year of membership).
- The UDID (Unique Device Identifier) of each device must be manually associated with your provisioning profile.
- Deployments and updates should be managed by the team.
- The developer provisioning profile is valid only for one year restricting the app to run on a given device for a one year. On expiry of the developer provisioning profile, the app will need to be rebuilt with a new provisioning profile.
Distribution Provisioning Profile
One can publish only apps created with an App Store distribution provisioning profile in the App Store. App Store distribution provisioning profiles do not contain provisioned devices and debugging can’t be done on device apps created by this provision. The provisioning profile can be in the iOS Dev Centre. An iOS developer of the Enterprise Program cannot create provisioning profiles for the distribution of App Store.
In the extension for Visual Studio, one can use the AppBuilder code signing assistance to create a distribution provisioning profile.
It’s vital to ensure that you have a certificate for production which is created for apple developer account. Ensure registration of an App ID for your app and make sure that you have logged in the iOS Dev Centre.
Other Alternatives for iOS App distribution outside App Store
TestFlight
TestFlight beta testing is a common method that allows you to distribute builds of your app to testers, collect feedback, and prepare the app for release on the App Store. TestFlight beta testing being optional enables you to submit your app for review without using it. It’s an easy to do, free, and a valuable way to improve your app before releasing it through the App Store.
TestFlight alternatives for iOS, Android, and Windows developers.
- Paid Options: HockeyApp, AppBlade, Appaloosa
- Free Options: HockeyKit, Apphance, Google Play Native App Beta Testing
- Freemium: Builder
Hockey App
Helps you distribute betas without extra tools and provides crash reports, analytics, and feedback built in. It provides beta testing for everyone and is available for the iOS, Android, and Windows platforms.
AppBlade
Available for the iOS, Android, and BlackBerry, it secures your app beta, encrypts app data, and completely wipe a tester’s device afterward.
Appaloosa
It enables enterprise app developers to share betas internally or with a private group. It’s multi-platform making it available for iOS, Android, and Windows devices.
HockeyKit
It is the self-hosted, open source version of HockeyApp with fewer features which is only available for iOS and Android apps.
Apphance
A cross-platform which works even once your app is live. One tool that enables you to distribute iOS, Android, Windows, and Unity betas. Enable beta users to beta users to report problems and provides access to detailed reports on how to fix them. It’s a tool that closes the feedback loop and works over the air like TestFlight.
Google Play Native App Beta Testing
With a bunch of built-in features and access to a pool of testers via G+ communities, this testing makes it easier for beta testing.
Beta Builder
Beta Builder is applicable only for iOS apps and has a Mac app you can buy for an optional donation of $10. It has the essence of test flight without a blimey interface. To prevent security issues beta testing in-house can be limited.
Distribution through App Store
To understand the difference between distributing apps inside and outside the app store, it’s necessary to know how it’s done through the app store.
The following steps show how to distribute an app through the App Store, Apple TV App Store, or Mac App Store.
- Get step-by-step guidance for enrolling in the Apple Developer Program and building, testing, and submitting your app.
- Configure services that are available only to apps submitted to the store.
- Test your app on multiple devices and system versions, or offer testers a preview of your next release.
- Upload metadata about your app so the store can present it to customers.
- Verify that you’ve prepared your app correctly, upload the build and submit it to the store.
- Learn how to release and maintain your app after submission.
Distributing apps in Android
Distributing Apps in APK format – Signed APK is more secure than unsigned APK format. While signed APK is used for distribution, unsigned APK is for development and testing. The developer only requires a play store account for distribution.
For distributing in Android, the one-time fee is required for development and distribution and an uploading fee needs to be paid.
iOS v/s Android: The better choice for SME’S
The below table shows a comparison between the distribution of Apps on iOS and Android and how various components differ between the two options available.
Conclusion
Once you’ve chosen a program to use, it’s equally important is how the actual app deployment is designed. The process may seem daunting, but similar to the development life cycle, you can help ensure success with proactive planning and attention to detail. It all comes down to a few simple steps, read and get a good picture of the user interface guidelines you have to stick on to, abide by the rules in the scenario where you are implementing platform-specific features, test thoroughly and consistently and eventually ensure that your application metadata is correct before you submit.
