How To Publish Four iOS Apps To The App Store

The task is to publish four iOS apps to the store. Previously, the apps were properly compiled and code rectified for iOS 11. It took five weeks to come to the situation that the only task remaining is publishing the apps to the App Store.

These apps are present in the Store since 2014 and were quite old by todays standards. The task was to innovate and bring them to life under iOS 11, otherwise Apple would have purged one or all of them from the store.

The Logistics Of Publishing Four Apps In A Batch

Out of the 8 gigs of memory that my computer has, I can allocate almost 6 to Macintosh software (the rest is used for housekeeping purposes). The more memory a Mac has, the happier we all are, but 6 gigs is not really much. The main problem is using simulators, which slow down the computer and if you try to have three or four of them active at the same time, the Mac will just stop responding. So, it is important to use one and only one active simulator at any time. In case of four apps in a row, we activate one app by one, take images on the simulator for each app and then kill the first simulator and then fire up the second emulator.

We then run the same four apps through the second simulator and gather the images to be published in the App Store listing. Mercifully enough, nowadays Apple will let you upload only one set of images for iPhone and only one set of images for iPad. (You still can create images for all other screen sizes and resolutions, but you do not have to.)

Choosing The Simulators To Work With

For iPhone, the only required screen size is 5.5″, while for the iPad, the size is 12.9″ (second generation). You can choose from one of the several models with size of 5.5″ and my choice is to use the simulator for iPhone 6 Plus. So fire it up in Xcode 9 and produce the app on computer screen.

Producing App Screen Shots From The Simulator

Normally, I take a shot of the entire screen and paste it into GIMP, which is my graphics processing software of choice. (If you can use PhotoShop, by all means do so. It is way better than GIMP, however GIMP is free, will runs on Windows, MacOS and Linux/Ubuntu and just does a good enough job for me.)

Once into GIMP, I’d cut out a rectangle of the simulator screen, past it again with Ctrl-Cmd-V into GIMP as a new image and save it in a file. Once saved, I’d press Cmd-E (or Ctrl-E) and save the image as PNG file, which is the ultimate goal. To upload the image to iTunesConnect however, the image must be of proper dimensions, must not contain alpha channel and must have no layers. To eliminate the latter two I use commands Image > Merge Visible Layers as well as Image > Flatten Image. To change the dimensions, use Image > Scale Image and enter the values for the simulator screen you are working with.

Screen Dimensions

In the past, Apple forced you to take screenshots of all these screens (up to five for each) and then also forced you to cut off the header for some of these formats (but not all). In 2017, you can still show what your app looks like in all possible screen sizes, but you do not have to. It is sufficient to supply the values for only two screen sizes, one for iPhones and one for iPads. For iPhones the screen size is 5.5″ and for iPads, it is 12.9″. You can then tell the iTunesConnect to use these supplied values for all other screen sizes, by clicking on link View All Sizes In Media Manager when preparing the new version of the app for submission.

To get screen size of 5.5″ choose iPhone 6 S, 6 Plus, 7 Plus or any other. To get screen size for iPads, use option iPad Pro (12.9 inch) (2nd generation).

App Screen Shots With Cmd-S

While in simulator, press Cmd-S and the PNG image of the screen will appear in the right upper corner of the desktop. Sometimes it will appear in the lower right corner, so you should make some room in the right side of the screen for these icons.

Now, when taking shots for size 5.5″, the PNG images will be of the right size, which is 1242 x 2208 pixels. Just drag the newly formed image to the folder of you choice (see below).

We are of not such luck in case of iPad simulator. The images that come out after Cmd-S are of half the needed size and you will have to use GIMP to change their size to proper 2048 x 2732 pixels.

In versions of Xcode before 9, there were several options to Scale the simulator window under Simulator View. Now you can scale the window by dragging its corners with a mouse and there is only one option to scale, which is Cmd-1, scale to physical size. The images taken with Cmd-S are always 100% so you do not have to worry about that any more.

Taking Screenshots On the Device

See here how to take a screenshot on your iPhone, iPad, and iPod Touch. You will find the images with the Photos app on the device and then you need to transfer them to the computer from which you are uploading the images to iTunesConnect.

All Files In One Place

I opened a new folder called screen_images and made four subfolders, one per app. Each of these subfolders has two further subfolders, called 5.5 and 12.9, denoting screen sizes in inches. When the iPhone 6 Plus simulator is active, the images go to subfolder 5.5, and when the iPad simulator is active, they go to the 12.9 subfolders.

Now as soon as you create a new shot of the screen and it appears on the desktop, drag it to the proper 5.5 or 12.9 folder, until you have five images in each subfolder.

Uploading The App Store Image Icon

In Xcode 9, you must package the image for the app store icon into the project itself. Drag the new image (which must be in size 1024 x 1024 pt) to the placeholder in Finder window for Assets.xcassets. The placeholder is called App Store iOS 1024pt.

If you do not do this in advance, most of the times you will wait for the app to get uploaded to the Store, only to find that you do not have proper icon in place.

If you are adding new files into the Assets.xcassets folder, be sure to import it again into Xcode. The new file must be called

App Store iOS 1024pt.png

Use GIMP to create the missing icon or you can use online services such as

Uploading the New Version Of the App To The App Store

While in My Apps portion of the iTunesConnect, click on plus sign near Version or Platform on the left side of the browser window. Choose iOS and enter a new version number of the app. Enter text for field What Is New In This Version? You may already have one such text if you are updating similar apps in a row (we are updating four similar apps here, so we may borrow from the first updated upp when we have one).

Enabling Push Notifications

If your app needs any of the available services, it has to be announced both in the provisioning profile on iTunesConnect as well as within the app itself. Case in point here is Push Notifications. To enable it in the app, go to project editor’s Capabilities pane and activate it. Alternatively, you can manually add the entitlement to your entitlements file.

In the account, go to Certificates, Identifiers & Profiles and go to iOS App IDs. Find the app that you working with and click on it. Click on Edit, scroll down and find the part on Push Notifications. Download both the Development SSL Certificate and the Production SSL Certificate and double click on the downloaded file. It will be inserted into the key chain.

Uploading New Version After Developer Rejected

Occasionaly you will have to delete the version of the app that you have just submitted, correct a thing or two and submit it again. First reject the app and the status will become Developer Rejected. You may do so even if the app is in review.

Erase the current build as described above and activate the new build, then submit for review again. You may need to wait for a couple of minutes till the latest build is processed, and becomes active.

Need Help With Submission Into The App Store?

I can help you if you have problems submitting the app to the App Store. Click here to send me an email!

This entry was posted in iOS and tagged , , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.