This document will walk you through the process of publishing your app to an ‘.ipa’ file.
Please refer to the online help file Publishing Your ViziApps App for detailed instructions on creating an iTunes Connect account and defining your product; creating the branding elements for your app; and uploading your app file to the Apple App Store.
Completed app branding in ViziApps Studio
Apple ID and Apple iOS Developer Account
Access to an Apple Mac OS X computer for creating digital certificates
Distribution Certificate (e.g. ios_distribution.cer)
Private Key (e.g. Certificates.p12)
Distribution Provisioning Profile (e.g. appname.mobileprovision)
Note: After you submit your app to ViziApps for publication, you will receive a confirmation email from viziapps.com indicating success or error. Please include viziapps.com into your safe email sender list so these important messages are not caught in a spam filter.
The iOS Developer account is a formal registration with Apple that determines the identity that will be associated with your app, and requires your Apple ID. You have two choices:
Developer - if you are an individual or sole proprietor/single person company. Note in this case your individual name will be publicly associated with the app.
Enterprise - if you are a company, non-profit organization, joint venture, partnership, or government organization. Requires a D-U-N-S number.
Register for a Developer Account here: https://developer.apple.com/programs/start/ios/
The only software required to complete this app publishing process is a program called Keychain Access, located on your Mac computer in Applications/Utilities. Keychain Access will be used to create a public/private key pair which are Certificate Signing Request and Private Key files.
Open Keychain Access on your Mac.
Under the Keychain Access menu, choose Keychain Access > Preferences and click Certificates. Make sure both Online Certificate Status Protocol and Certificate Revocation List are set to Off.
Choose Keychain Access > Certificate Assistant > Request a Certificate From a Certificate Authority.
Note: If you have a private key selected when you do this, the CSR won’t be accepted. Make sure no private key is selected.
Enter your user email address and common name. Use the same address and name as you used to register in the iOS Developer Program. No CA Email Address is required.
Select options “Saved to disk” and “Let me specify key pair information”. Click Continue.
Specify a filename and click Save. The filename will have the extension “.certSigningRequest”.
For the Key Size choose 2048 bits and for Algorithm choose RSA. Click Continue and the Certificate Assistant creates a CSR file and saves the file to your specified location.
Note: The Keychain Access Utility often posts a number of keys that look alike and can be very difficult to choose the right one. It is best to save this CSR file immediately rather than using Keychain Access at a later time to recover the CSR file.
Open Keychain Access on your Mac.
Select “login” under “Keychains”.
Look for the certificate which has your name as entered for the CSR request and the Kind is listed as Private Key. You can click on the left-hand arrow to expose this key’s certificate to view the complete description for this key.
Note: Several similar-looking private keys may appear in your keychain. Make sure to choose the Private Key file that has an “iPhone Developer” certificate in its details.
Select this private key, then choose File > Export Items …
The default name is “Certificates.p12”, but for clarity you could rename this file to “your-name-PrivateKey.p12”.
Click Save. The Private Key file with this name will be downloaded.
You are now prompted to enter a new password for the Private Key. Enter the new password but also make note of this password - it will be needed later. Click OK.
You will be prompted to enter your Mac user password so Keychain Access can complete the export. Enter your Mac user password and click Allow.
Log in to the iOS Provisioning Portal.
Under iOS Apps, select Identifiers. Under Certificates, Identifiers, and Profiles, click on App IDs. Click the plus sign (+) in the upper right to add a new App ID.
Enter a name for the App ID under Description. This name is for your own use.
Under App ID Suffix, select “Explicit App ID”.
Enter a Bundle ID string and click Submit. By convention this starts with your company’s domain name in reverse and then adds your product name separated by periods, e.g. com.viziapps.mymobileapp. The Bundle ID is a Uniform Type Identifier, which means the App ID can contain ASCII characters A-Z, a-z, 0-9, hyphen ("-"), and period ("."), and all Unicode characters above U+007F.
Write down this Bundle ID for later use in iTunes Connect.
Under the App Services heading, check the option to enable Push Notifications. You may not need this service initially, but selecting this option now will prevent you from having to rework your certificates if Push Notifications are used at a later time.
Click Continue.
You will be presented with a screen to Confirm Your App ID. Click Submit.
You will be presented with a Registration Complete screen. Click Done. Check to make sure your new App ID appears in the listing under iOS App IDs.
Note: The App ID must be exactly the same as what you enter in iTunes Connect for your app’s Bundle ID Suffix. Do not enter a wildcard because this may prevent some advanced features from working. You may find more detail in Apple’s documentation of the App ID.
Log in to the iOS Provisioning Portal using your iOS Developer Account.
Under iOS Apps, click on Certificates. Click the plus sign (+) in the upper right to create a new Certificate.
Under the Production heading, select App Store and Ad Hoc. Click Continue.
You will see a page describing the process to create a Certificate Signing Request file, which you have already completed. Click Continue.
You will see the page called Generate your certificate. Click Choose File and navigate to the CSR file (“.certSigningRequest”) that you have previously created and saved.
Click Generate.
You should be presented with the screen, Your certificate is ready. Click Download, which will prompt you to save this file, ios_distribution.cer. Click Done.
Rename this file to clearly denote the app name and iOS distribution, and save it to a safe location for later use by ViziApps. This certificate will also be stored in the iOS Portal under Certificates, Production.
Log in to the iOS Provisioning Portal.
Click Provisioning Profiles under iOS Apps.
Click the plus sign (+) in the upper right to create a new profile.
You will be asked, What type of provisioning profile do you need?
Under the Distribution section, select App Store. Click Continue.
Note: it is also possible to select Ad Hoc. The reason to create an Ad Hoc certificate is to test your app on multiple devices prior to your production release.
You will be asked to select an App ID. Choose the App ID that you just created. Click Continue.
You will be asked to Select certificates. You should see an iOS Distribution certificate listed under your name and the current date - select that certificate. Click Continue.
The next screen is Name this profile and generate. Enter a profile name. This name is used within the iOS Portal to identify this provisioning profile, so you should include a description of your application name and App Store (or Ad Hoc). Click Generate.
The next screen should say, Your provisioning profile is ready. Click Download and save this file. This filename should already include the Profile Name that you just entered, with the file extension “.mobileprovision”. Save it to a safe location for later use by ViziApps.
You now have the 3 files you need to complete app publishing, as described in Publishing Your ViziApps App.
The previous section described the process for creating an iOS app “.ipa” file that can be used for public distribution in the Apple App Store. The following section describes variations that can facilitate testing of limited distribution apps that are not posted on the App Store.
For most of the app development cycle, ViziApps offers two ways to perform testing. For Hybrid apps, the “Preview App” button in ViziApps Studio will run most of your app right in the browser, however there are some device features, such as the camera or GPS, that require a real device. For testing any app design on real phones and tablets, look for the ViziApps app on the Apple App Store or Google Play. This “player” app can select and run any of the apps in your account, and the full development and testing cycle is free and unlimited.
However, there are cases where you may want to perform app testing that involves a larger group of people, or to verify a fully custom built app including branding features, before committing to the Apple App Store, and this process requires that you create an “Ad Hoc” build. An Ad Hoc build is often referred to as a Beta Test build, because it is distributed to a limited audience for testing purposes, and not posted to the Apple App Store.
Because an Ad Hoc app does not allow unfettered installation on any iPhone or iPad device, the devices you wish to test must be registered with Apple and associated with your app.
One popular way to alleviate much of the administration of Ad Hoc device provisioning and app distribution is to use the popular service TestFlight. When using TestFlight, you will build an Ad Hoc distribution file as described below, and submit this file to your TestFlight account.
Without TestFlight, the process for registering a new user’s device is as follows:
Ask the user to report their Device Identifier to you.
Log in to the iOS Provisioning Portal using your iOS Developer Account, select Devices under iOS Apps.
Click the Add (+) icon and create a new device for this Device Identifier. Note that your developer account has a lifetime limit of 100 devices, and devices cannot be deleted.
This new device will be used in the creation of your Ad Hoc Provisioning Profile.
In order to privately build and test your app on real iPhone and iPad devices, you need to create an “Ad Hoc” provisioning profile. Just as the previous section described the process to create an “App Store” provisioning profile (see Create a Distribution Provisioning Profile), you need to create a different mobile provisioning profile. The procedure is similar except as relates to an “Ad Hoc” distribution instead of “App Store”.
Log in to the iOS Provisioning Portal.
Click Distribution under the Provisioning Profiles menu. Click Add (+) for a new profile.
Select the distribution method as “Ad Hoc” and enter a profile name. Click Continue.
Choose the app ID for the app you want to distribute. Click Continue.
Select your certificate. Click Continue.
At this point you will be given the opportunity to associate devices with your provisioning profile. You should select at least one device. Click Continue.
Enter a Profile Name (which is just used in the Portal), and click Generate.
The next screen should say, Your provisioning profile is ready. Click Download and save this file. This filename should already include the Profile Name that you just entered, with the file extension “.mobileprovision”. .
The process for building an Ad Hoc distribution app file is nearly identical to building an app file for App Store distribution. Again, please refer to the help file Publishing Your ViziApps App for detailed instructions. The only difference is whether you present to ViziApps Studio your Ad Hoc provisioning profile, or your App Store provisioning profile.
There will not be an extra fee to re-publish your app first as an Ad Hoc distribution and then again as an App Store distribution. However, your final .ipa file posted under “App Store Builds” will be overwritten, so be sure to save each final .ipa file in a unique and clearly labeled location.
If you are using TestFlight then users will need to report their Device Identifier to TestFlight, and then you may invite them to test your app.
Without TestFlight, send both the Ad Hoc provisioning file and the .ipa Ad Hoc build file to your tester, and instruct the user to install both the provisioning profile and the app into iTunes, then connect the device to iTunes and sync. Note that if you have the Device Identifiers for your users prior to building your .ipa app file, then you could include these devices at the time you create the mobile provisioning file and you will not need to distribute the mobile provisioning file to testers.