Manual/Auto iOS App Publication
To publish an iOS app (auto or manual) you need to have an Apple developer account. Apple charges a $99 annual fee to all developers. This is paid directly to Apple. With this, you get to publish unlimited apps for yourself on the app store through iTunes connect. Also, note that your Clients need to own an Apple Developer account in order for their apps to be published. You can no longer publish your clients’ apps in your Developer Account. This is as a result of a policy change by Apple
Click HERE to learn step by step how to signup the right way for the Apple iOS Developer program.
Tip: Apple passes all apps through a rigorous review process before it goes public. This review takes about 5 – 10 days. To be on the safe side, plese go through this CHECKLIST to avoid rejection.
If all is well, then let the party begin.
Okay! If you want to do it yourself…
Lets continue with the tutorial.
Basically there are 4 steps involved in publishing iOS Apps
- Download iOS Source From Mobimatic
- Preparing iOS Apps – step 1 (Identifiers & Certificated)
- Preparing iOS Apps – step 2 (Provisioning Profiles & App Signing)
- Sending iOS app to the apple store
Step 1: Download iOS
Source From Mobimatic
Login to your mobimatic dashboard
Open the app you want to download source code.
On the top edit menu panel click ‘Publish‘
It opens the publication page.
Now Click ‘Generate Source‘
(You can generate source with ads or source without ads – choose one)
It takes about 30 minutes on the average for the system to generate your source code.
You have to wait for the source code to be generated. After some time, refresh the page. After the source has been generated you will now be able to download source code as a zipped file.
To download, click on ‘ Download Latest‘
A zip file will be downloaded to your computer.
Thumbs up… reward yourself with a cup of coffee.
Step 2: Preparing Your iOS App
– Identifiers & Certificates
You should have a developer account by now.
Now go to the Developer Center and sign in:
After providing your credentials, you’ll be in! Finally!
The Developer Center has a LOT of information. There are programming guides, downloadable code, documentation, videos, the very helpful developer forum and a support center.
In this tutorial that demonstrates how to submit an app, you’re going to focus on two areas that you’ll use a lot when developing your apps: the Certificates, IDs & Profiles area and iTunes Connect:
But first, a brief introduction to each is in order.
Certificates, IDs & Profiles
As you may already know, a non-jailbroken iOS device is only able to run apps approved by Apple and installed through the App Store.
Apple achieves this by requiring that every app run by iOS has a signed Apple Certificate. Apps installed from the App Store come bundled with a certificate, which the system verifies before it allows the app to run. If there’s no signature or if the signature is invalid, the app won’t run.
As a developer, you need to be able to run your apps on your own devices on a regular basis as you’re developing them. For this you need a way to create and sign your own certificates.
That’s where the Certificates, IDs & Profiles area comes in. This section allows you to generate what Apple calls “profiles”. Profiles, sometimes called “code signing identities”, are files generated by the Developer Center that allow Xcode to sign your apps in a way that allows iOS on your devices to identify as valid.
There are two types of profiles:
- Development profiles. These are tied to specific devices, so the app can only run on those.
- Distribution profiles. These are used to sign your app before you submit it to Apple for approval. They contain no device-specific information, but you can’t use them to install apps on any device yourself, because Apple still has to sign the app after the approval process.
The Certificates, IDs & Profiles area can also generate push certificates in case your app wants to send push notifications.
iTunes Connect is the portal you’ll use to submit an app. This is where you’ll register a new app, enter the app’s description and screenshots, choose the price, and configure game center and in-app purchases.
This is also the portal you’ll use to agree to new contracts, set your financial data (so you can bank that profit) and check your sales.
In steps 2 & 3 you’ll be working in the Certificates, IDs & Profiles area. Next time, in step 4, you’ll look at iTunes Connect.
Certificates & IDs
In this next part of the tutorial, you’re going to use the Certificates, IDs and Profiles area to set up the information you need in order to deploy your app to your device (and later the App Store).
If you still have your Developer Center page in front of you (if not log in again), just click the Certificates, IDs & Profiles link on the left side or click on the gear icon in the middle of the page:
There are a lot of things you’ll need to do from this area. Some of them you’ll only have to do once, like generating your certificates and registering your devices. Other things you’ll have to repeat for every app you make, like generating development and distribution profiles.
First you’ll need to generate two certificates, one for your development profiles and another for your distribution profiles. As the text on the page explains, you can request a certificate via Xcode, or manually. But it’s really useful for you to understand the manual process so you’ll be uploading a Certificate Signing Request (or CSR) from your Mac.
Make sure the drop down in the upper left says iOS, tvOS, watchOS, then click on the + in the upper right:
On the next page, select iOS App Development as the certificate type and click Continue at the bottom:
An explanation of how to generate a CSR using Keychain Access is then shown. To follow the instructions, you need to open the Keychain Access app on your local Mac computer. If you don’t know where it is, search for it using Spotlight:
Once the program is open, choose Keychain Access>Certificate Assistant>Request a Certificate From a Certificate Authority…:
In the Certificate Assistant window, fill in your email address and name, choose Save to disk and clickContinue:
Save the file somewhere on your Mac. That’s your CSR created, now to generate that certificate.
Go back to the Apple Developer Centre in your browser — you should now click Continue
Click Choose File…, locate the CSR file you just created and select it, then click Continue
You will now see a screen that says your certificate is ready.
Double click the development certificate file you just downloaded to install it in the keychain:
Click Add in in the Keychain Access dialog to complete the installation:
Now you have your certificate for your development profiles, you need to create a certificate for your production or distribution profiles.
Click the Add Another button. Under Production select the App Store and Ad Hocbutton, and click Continue at the bottom as before:
Go through the same process as before to submit the same certificate signing request as you did for the development certificate.
When it is ready, click Download, and double click the distribution certificate file to install it in the keychain:
Note: The distribution certificate is called ios_distribution.cer, whereas the development certificate you downloaded before is called ios_development.cer.
Now look in Keychain Access and you will see your two installed certificates as follows:
Note: If you do not see the message This certificate is valid with a green check-mark, then you have either not launched Xcode yet, or you need to install the Intermediate Certificates, as noted above. The easiest step is to launch Xcode and let it update the intermediate certificate for you.
Now you can close Keychain Access.
Let’s continue. The next step is to register your devices. On the left-side menu, click DevicesAll and then on the right, +:
You need to get the UDID of the device(s) you want to use to run your apps. There are many ways to get a device’s UDID: there are free apps available that will do it for you, or you can use Xcode’s organizer. Here, you’ll get a UDID using iTunes.
Open iTunes and plug the device into your computer. Select the device from the menu bar under the player controls. iTunes will display your device name, capacity, version, serial number and phone number. Click on the serial number and it will change to your device’s UDID:
Now just right click on the number and select Copy to copy the UDID to your clipboard.
Go back to your browser, enter a device name (which can be anything you want) and paste the UDID into the appropriate field. When you’re done, click Continue
You will now be prompted to confirm the registration. Click Register:
Your device is now registered, and will appear in your list of devices:
You can always go back later to register more devices, such a those belonging to friends and beta-testers.
Note: Apple allows you to register up to 100 devices per year to your account. If you register a device and later remove it, it still counts towards your total for the year.
Creating App IDs
Now that your device is registered, you need to create an App ID. Every app you build will need its own App ID. On the side menu, click IdentifiersApp IDs:
You’ll see a brief explanation of the App ID concept. In a nutshell, an App ID is a combination of a 10-character “seed” prefix generated by Apple, and a suffix created by you, defined as a Bundle ID search string. Together they create a unique identifier for your app.
Now that you know about App IDs, it’s time to create one. On the right side of the screen click +:
Fill out the description (usually just your app’s name). The seed ID will usually always be your Team ID. Now, make sure Explicit app ID is selected, and enter the Bundle ID. Click Continue when done:
You will be prompted to confirm your values, click Register at the bottom. You will then see a Registration Complete message:
Now you’re ready to create the provisioning and distribution profiles.
Thumbs up… reward yourself with a cup of coffee.
Step 3: Preparing Your iOS App
– Provisioning Profiles
On the side menu, click Provisioning ProfilesAll:
You’ll see a brief explanation describing getting started with iOS provisioning profiles. A provisioning profile joins together all the pieces you have done so far, including certificates, device identifiers, and the App ID.
Development provisioning profiles are used to build and install versions of your app during your development process and Distribution provisioning profiles are used for submitting your apps to the App Store and beta testers.
On the right side of the screen click on the +:
Choose iOS App Development, then click Continue:
The next screen asks you to select an App ID for this new profile. Since you’ve only generated one so far, the drop down menu contains just this one. Click Continue:
The following screen asks you to select the certificates for the profile. If you have multiple members on a team they can be selected from here. Select your certificate checkbox and click Continue:
This screen asks for the devices this profile is valid for, select your device and click Continue:
Now, enter a name for this profile. The name you specify is used to identify it among other profiles, so try to make it as descriptive as possible. Click Continue:
The final page shows your generated profile and has a download button that allows you to download it. Go ahead and click Download:
Since you are already here, go ahead and generate the distribution profile. You won’t actually need this profile until you’re ready to submit the app for approval, but since you’re here, it’s worth doing it now. Click the Add Another button at the bottom:
Under Distribution, click the App Store button, then click Continue:
The next few steps are the same as for the development profile. Follow the screens along, name the distribution profile something descriptive and unique and download it as you did the development profile.
Now find the files you just downloaded on your computer, and double-click each of them in turn causing Xcode to launch. Verify the profiles are there by opening a project or starting a new one for this test. Click on the Project in the left pane. Select Build Settings, select All, scroll down to Code Signing and click on the word Automaticnext to the entry for Provisioning Profile. Your profiles should be listed:
If you followed the whole process outlined above and completed each step in the process, then you’ve taken a huge step towards becoming an official iOS Developer – congratulations! Even if you’re still contemplating it, the process should now be less intimidating.
Thumbs up… reward yourself with a cup of coffee.
In the next step showing how to submit an app, you’ll have some fun getting your app running on a device and submitting it to the App Store.
Step 4: Testing Your App & Submitting
your app to the app store
In this step, you’ll configure an app to run on the devices you registered, use iTunes Connect to send Apple all the information they need to pay you for your apps, and finally, you’ll submit an app to Apple for approval.
Open the project you chose (the mobimatic source you downloaded in step two – unzip first) in Xcode. Open the project navigator and click on the project node of the tree (1), then click on the target (2), then click General (3), set Deployment Target (4) to 9.0 at the top:
Note that deployment target is a fancy way of saying “the minimum version of iOS that your code supports”. Be careful though, because if, for example, you set this to iOS 8.0 but use an API that is only available on iOS 9 without checking first, your app will crash! The safest thing to do is to test your code on a device running the oldest version of iOS you want to support.
Next, change the Bundle Identifier. This should be the same bundle identifier you used for the App ID you registered in the Provisioning Portal (this should be the same with your mobimatic bundle ID on the page you downloaded the source from.
Now you need to assign the team — select your account from the drop down:
Next step is to point Xcode to the correct provisioning profiles. Click on the Build Settings tab and search for the word “signing”. In the search results list under the Code Signing Identity section, click on the drop downs for the Debug and Release entries and choose the correct provisioning profiles from those presented by Xcode.
You should select your developer profile for the Debug build, and your distribution profile for the Release build:
You’re almost ready to build, but before you do, make sure the device you want to build on is connected to your Mac. Then choose to build for that device using the scheme chooser:
Press ⌘B to build the project. You may see a prompt saying “codesign wants to sign using key ‘privateKey’ in your keychain”. The Mac is letting you know Xcode wants to access your credentials. Click Always Allow.
If there are any problems with your profiles, you’ll see something like this popup in Xcode:
In this example, the Bundle ID had been accidentally mis-typed. Xcode will gladly go make you a new profile for you — but you do not want that so don’t hit Fix Issue — select Cancel instead and go back and correct the Bundle ID manually.
Hit ⌘B to build again. Now everything should be OK:
Hit ⌘R to run the app. In a few moments you should see your app running on your device! Yay! Finally! :]
Next, you need to know how to submit an app to Apple for approval. For this, you’ll have to use iTunes Connect.
Last Stop: iTunes Connect
Now it’s time to get to know iTunes Connect. Go to: https://developer.apple.com/membercenter and log in with your iOS Developer credentials.
Click iTunes Connect:
Note: You can also connect directly to iTunes Connect via the url: https://itunesconnect.apple.com
The first time you connect, you’ll see a brief introduction panel. You may wish to skip this in future:
Also, if it’s your first time, you’ll have to accept the Terms of Service. By now you know the drill: lawyer, click checkbox, click Accept. It might be a good idea to keep that lawyer on a retainer…:
You will now be greeted with the main iTunes Connect dashboard. There are a lot of things to do here — this tutorial will show you the basic steps to get your app submitted, but if you want the gritty details you can check out the complete iTunes Connect Developer Guide.
First things first: If you want to get paid for your apps, there’s some “paperwork” you must fill out. It’s better to get this stuff out of the way right now. It’s pretty boring and it will vary a lot from country to country but, seriously, if you want to get money from your apps you’ll have to endure it.
Click HERE to learn how to setup agreements, taxing and banking.
If all of your apps (or at least the first) will be free, you can skip this section and go right to Submitting Your App below.
Submitting Your App
There are certain items you’ll need to get in order, before you can go any further. Make sure you have the following ready before you even get started:
- Your app’s name.
- Your app’s description.
- Your app’s icon, sized 1024 by 1024 pixels.
- 3.5 inch retina: Sized: 640 x 920 (no status); 640 x 960 (full screen); or, for landscape, 960 x 600 (no status bar); or 960 x 640 (full screen).
- 4 inch retina: Sized: 640 x 1096 (no status); 640 x 1136 (full screen); or, for landscape, 1136 x 600 (no status); 1136 x 640 (full screen).
- 4.7 inch retina: Sized: 750 x 1334 (portrait); 1334 x 750 (landscape).
- 5.5 inch retina: Sized: 1242 x 2208 (portrait); 2208 x 1242 (landscape).
- iPad: These should be sized 1024 x 748 (landscape, no status); 1024 x 768 (landscape, full screen); 2048 x 1496 (landscape hi-res, no status); 2048 x 1536 (landscape hi-res, full screen); 768 x 1004 (portrait, no status bar); 768 x 1024 (portrait, full screen); 1536 x 2008 (hi-res portrait, no status bar); 1536 x 2048 (hi-res portrait, full screen).
- iPad Pro: Sized 2048 x 2732 (portrait); 2732 x 2048 (landscape).
Notes: Your images can be in JPEG or PNG format. At least one screenshot is required for each device your app supports (maximum 5 for each). You should not include the status bar in the images.
Once you’ve got all this assembled, click My Apps in iTunes Connect:
Click +, followed by selecting New App:
- Platforms – Choose iOS for your app.
- Name – enter the name of your app (as it will appear on the App Store).
- Primary Language – select from the choices.
- Bundle ID – select the correct id from the drop down of IDs you registered earlier.
- SKU – a unique ID for your app in the Apple system that is not seen by users. You can use letters, numbers, hyphens, periods, and underscores. The SKU can’t start with a hyphen, period, or underscore.
Now click Pricing and Availability:
Select All Prices and Currencies for more information about the price tiers. Now choose your desired price tier or indicate that your app will be free. You can specify different prices within different date ranges if you wish by selecting Plan a Price Change. But for now, just add one entry — the Start Date will default to today; the End Date will be set to “No End Date”.
Check the radio button if you want your app to be offered at a discount to educational institutions when they purchase multiple copies at once. You can also offer your app to businesses at a discount for multiple purchases.
Once you’re done, click Save:
Click 1.0 Prepare for Submission:
This section is where you add all the assets for your app to appear in the App Store. First step is to upload your app’s icon and at least one screenshot. If your app is universal, you’ll need to submit screenshots for the iPhone and for the iPad. When you have what you need, just drag and drop the screenshots over for each device type.
Tips: You can make your screenshots with the Simulator by clicking ⌘S when your app is running on xcode. Run the simulator in 100% scale mode and use the following simulators for the proper screenshot sizes:
- 4.7-inch is 6S simulator
- 5.5-inch is iPhone 6S+
- 4-inch is iPhone 5
- 3.5-inch is iPhone 4S
- iPad is iPad2
- iPad Pro is iPad Pro
Click Save when you’ve added all the screenshots you need.
Scroll down and complete the the description (this is what the users will see in the app store) and keywords.
Consider the keywords — these are very important. Only your app’s name and keywords are indexed in iTunes’ search engine, so brainstorm words that potential users might think of using to find your app or your competitor’s apps. You can only change keywords when submitting updates, so choose wisely.
Enter the URL for your website support page. It can be a simple page that allows users to email you if they want to compliment you on your great work :]
Skip the Build section for now and scroll down to General App Information. Add your icon — it must be 1024 by 1024 pixels.
Set the version number (should be the same as in your app’s Xcode project).
Fill out a copyright notice (generally just the release year and your name or your company’s name), a contact email and affiliated websites.
Click Edit next to Rating. Enter the categories appropriate for your app. Be honest, as the reviewer can make changes to this section if they disagree. Click Done:
Scroll down to App Review Information. This section is designed to help the person who reviews and approves your app. The Notes can be used for details about your app that you want the reviewer to know about. For example, if users need to sign up at a website or even within the app in order to use it, provide some credentials here to make the reviewer’s job easier. Also, if your app requires special hardware, ensure that you explain that here too, and try to have a way for the reviewer to use the app without the hardware. Complete the contact information so that the reviewer can reach you to discuss things if they need to:
Finally, use the Version Release section to indicate when you want the app to be released. Since this is the first version, just leave the Automatically release this version option selected.
Now click Save:
If there were no issues with what you have entered, you will now see a Submit for Review button in the top right:
If you try to click Submit for Review you will get a message saying that there were one or more errors on the page — your app has not been uploaded yet!
Remember you skipped the Build section? So now you need to upload your app using Xcode.
Submit an app with Xcode
Your application should now be tested and ready to roll. All you need to do is submit to Apple for approval. This is surprisingly easy considering what you’ve been through already.
Go to Xcode and choose Generic iOS Device in the scheme chooser:
Then choose ProductArchive:
If everything is okay with the build, Xcode will open the Organizer window with your app in the Archives tab. You don’t really need to click “Validate…” here because this will be done when you submit anyway, and Xcode should have already validated against most problems. So save yourself some time and click Upload to App Store…:
Select your iOS Developer credentials and click Choose:
Next, you will be shown the app to upload. Click Upload:
Your app will start uploading to iTunes Connect. Various windows will update with messages as code is compiled, verified and code-signed. When the upload finishes, you should see the following message:
Just smile and click Done. :]
You now just have a couple of quick steps to submit the app. Switch back to iTunes Connect and scroll down to the Build area you skipped earlier and click Select a build before you submit your app:
Select the build Xcode just uploaded and click Done:
Click Save at the top right:
Click Submit for Review:
Answer these questions honestly, then click Submit:
You’re done now. You should receive a couple of emails from iTunes Connect telling you your app has been uploaded and is waiting for review. Your app’s status has also changed:
All you have to do now is wait for your app to be approved! You will receive emails about every change in status your app moves through. Usually after about a week the status should change to “In Review,” then to “Approved”. Unless you chose a future release date, a few minutes after approval your app’s status will shift to “Processing for App Store”, then a few minutes later to “Ready for Sale”.
In iTunes Connect click Activity, followed by App Store Versions to see the status of your app throughout the process:
If your app is not approved, Apple will email you with more information. They have gotten pretty good at being specific at what the exact problem is and how you can fix it, for the most part.
If this happens, it’s no big deal – just fix the problem and re-submit.
The time for reviews for your apps will vary based on traffic, but in general it takes around 5-10 days for most people.
Thumbs up… reward yourself with a cup of coffee.