Tix App Icon

My First App on App Store & My First Post on Medium ( Part 2 )

Sivrish Thangamani
8 min readNov 19, 2018

--

This is the part 2 of my first post on medium which tells the story of how I released my first app to the App Store. The story I have said so far is 75% of it and here's the hard 25%.

After developing the app on my MacBook, I have to upload the app to Apple. I knew a little about provisioning, certificates etc… but I never knew the whole process of submitting the app to App Store. Then started googling about it.

Apple Developer Program 🧳

For releasing your app to the App Store, you’ll need an Apple Developer License to do so. For enrolling yourself you should have an Apple ID and you have to pay a fee of 99$ per year which is approximately ₹7100. You can enrol for Apple Developer Program in developer.apple.com

Apple Developers Portal - developer.apple.com

Profiles and Certificates 📲

After enrolling to apple developer program, I had to register a Bundle Identifier in my portal. The bundle Identifier is a unique string you provide for your app to identify it uniquely among all apps in App Store. Most common bundle identifiers looks like this websitedomain.appname . for example com.sivrish.tixapp

Then I had to create a ios distribution and development certificates, which will be used to sign the apps. Means that all the apps in my developer account which I’ll submit for App Store should be signed with a certificate generated for a Mac computer. I had to create a CSR ( Certificate Signing Request ) file from my MacBook and upload it to the portal to generate the certificate and then download it to my MacBook and install it to the Keychain for using it whenever necessary.

Creating certificate in Developer Portal

Then I had to create Provisioning Profiles. A quote from apple developer program information

A provisioning profile is a collection of digital entities that uniquely ties developers and devices to an authorized iPhone Development Team and enables a device to be used for testing. A Development Provisioning Profile must be installed on each device on which you wish to run your application code. Each Development Provisioning Profile will contain a set of iPhone Development Certificates, Unique Device Identifiers and an App ID. Devices specified within the provisioning profile can be used for testing only by those individuals whose iPhone Development Certificates are included in the profile. A single device can contain multiple provisioning profiles.

Same as Development provisioning profiles you also need a distribution provisioning profile to bundle with your app while submitting your app to the App Store. After creating both the profiles, you have to download it to your development machine and install it to your keychain.

Tix Development and Distribution Profiles

Creating App Entry on App Store Connect 📋

For every app that are to be submitted to the App Store, we have to create a entry of our app in the App Store Connect (previously iTunes connect). While creating you have to link your bundle identifier that we created earlier to the entry and give our app name which should not same as another app on the App Store.

The biggest mistake I did was that I never properly checked that another app with the same name Tix existed on the App Store. I thought that searching the app name on the app store is sufficient and built everything around the name Tix but when I had to create the app entry for the App Store, I got an error that there’s another app with the same name registered. I was upset after seeing that. Because now I have to change everything in a different name including the App Icon, Bundle Identifier etc… Even some of those are not necessary I wanted to change everything for perfection.

Then I found a solution online to keep the name Tix. It’s by giving the name for my app as “Tix - Easy Video Splitter”. To my surprise It was accepted. It turns out that many developers follow this way when their desired app name was not available.

App Store Connect

Filling Info About the App 📝

Then I had to fill the information about the app. To my surprise the information they need for an App was so many. I had to fill the App Information first, which is App Category, Age Rating for the app etc…

App Information

Next to App Information is Price and Availability, in which we can give the price for our app and what regions our App has to be available. Also we can give Pre-Order info in this tab.

Price and Availability

Then under iOS APP section you can see your version 1.0 of your app. You can select that and you can provide screenshots and descriptions for your app.

iOS App 1.0

Screenshots 📷

Now I have to create screenshots for my app and I had to create screenshots for the screen sizes from 4 inches to 6.5 inches, which is totally 6 screens. Generating screenshots for all 6 sizes seemed like a big deal but a sketch project called shots made it really easier to design it but shots doesn’t have the option for 6.5 inches device (iPhone Xs Max). But it’s really easy to create that too. All I had to do was to get a sketch file with the Xs Max device frame and added it to shots just like how the other frames was made and voila the screenshots for all the 6 screen sizes are ready.

Creating the screenshots for App Store in Sketch

Then all i had to do was to export all the screenshots and upload it to the App Store connect for the respective screen sizes.

App Store Connect Media Manager

Archiving 📦

Now we can finally archive our app to submit. First we have to select the downloaded profiles as our development profile and distribution profile on our xcode project. We can do that after toggling Automatically manage signing option off.

Profiles selected on Xcode

Then for archiving our build, we need a physical device iPhone or iPad connected to the Mac or you can also select the Generic iOS Device. Now you can start archiving by the option in the menu bar Product -> Archive. After archiving the app we will be taken to the organizer as in the screenshot below. Now in the organizer we can see all our archives and we can validate our build here and upload it directly to the App Store by Distribute App option.

My Archive

Mandatory 😲

After uploading the archive to the App Store connect, We have to select the build from the Build section of iOS App 1.0

Tix Version 1.0 Build 2 selected on Build Section

After selecting the build, I was so excited and I tried out the TestFlight and It was working great. Then I pressed “Submit for review” and It threw a big mandatory check error that I haven’t filled Privacy Policy URL, which is mandatory for every app to have nowadays according to Apple’s app submission policy. Then I started looking for privacy policy templates, but luckily I found something even better than a template. A website called PrivacyPolicies.com. This website made my work so much easier, this website will generate privacy policy. It’s just a few step process. It’ll ask you few questions about your app and after you answer all that your privacy policy will be generated and will be hosted for free with their link. It’ll look something like this

Privacy Policy of Tix

Now I’ve added the privacy policy URL and submitted the app thinking that it’ll get submitted but then again came another mandatory check error saying that the support URL is mandatory. Then I had to create a static website that should satisfy the purpose. I bought a domain few months back, that was there for rescue.

I created email ID for my domain to support the issues from the users and the queries on the privacy policy. I used Zoho Mail to create the mail for my domain because they provide free custom domain email hosting upto 25 users and their mail service is reliable as Gmail's.

Then I created a Static Website as my Portfolio site and to support the users. It had a form for the users to post their queries and report issues.

My Portfolio Site
Get in touch Form

The Review ✅

Then I filled in the support URL and Pressed “Submit for Review”. The app was successfully submitted on Nov 14th. Then the review took less than 24 hours to finish and I received a mail that my app review was finished and it’s accepted for release on the App Store.

Review Timeline

All the work I did so far was towards the only goal to release my app on App Store and So I want to release the app on a special day since it was so close after the review was finished (P.S I really wanted to test the scheduled release feature on App Store Connect). When the app status changed to Pending Developer Release, I scheduled the release to Nov 18th, 00:00 hrs.

Scheduled Release on App Store Connect

Conclusion ✌️

So this is the story of how I released my first app to the App Store and a brief guide on releasing an app to the App Store. I hope you enjoyed.

--

--

Sivrish Thangamani

I am a Software Developer who likes to learn new things and develop new software. Currently working as iOS Developer in Zoho Corporation.