Xcode

New Updates for Appstore Submission with Xcode 8+

Abstract
Continuous updates from Apple which many times, are not always available to developers makes their app not uploaded over the Appstore connect or sometimes cause rejection from Apple review team. This article is supposed to address this core issue. This may result in helping developers to avoid release time complications and save precious time and cost.

Introduction
As a continuous process, Apple keeps procedures updated to achieve ease for developers and users. This updation widely range from hardware to software. May it be wireless earbuds or it may be renaming iTunesConnect to Appstore connect. One thing that always pushed us to work in this technology, is the latest updates enclosure by maintaining standards for developers and users as well.

As we can see that in last few years, Apple works vigorously in Swift updates. With every update they are including more and more features that make it globally accepted for not only iOS and OSX development but also trying to give a competition to server side languages as well. However to success in other areas, it’s way to go.

Coming back to mobile application development, there are certain updates in past that might be troublesome for developers, who are migrating from XCode 8+ to 9+. There are certain scenarios that keeps annoying the developers for making the app accepted to the Appstore. Next, I’m focussing towards the points that needs to be checked before uploading app to the Appstore. Let’s begin…

As per new updates, there are some points that needs to be incorporated in the build before uploading to the appstore. The most observed situation in which App gets uploaded to the Appstore, shows the build for some time and then it gets vanished. You can’t figure it out what happened till Apple email you about the issue. This incur time and extended the process of app submission to Appstore connect and ultimately impact the deliveries and business. Hence, followings could be the possible remedies to avoid such situation.

Use of iOS 11+ SDK:

From July 2018 either app or any updated version of app submit to App store must be built with iOS 11+ SDK. This SDK arrived with some new technologies for mobile application developers like Core ML, extended Siri support, revamped camera APIs, ARKit etc.

As upcoming era of mobile applications is all about what is included in the new iOS 11+ SDK. That’s why Apple makes it mandatory for developers to build their apps with iOS 11+ i.e. they have to use Xcode9+ for creating builds to upload apps to Appstore connect seamlessly.

1

Super Retina Display Support:

Every app must support Super retina display of iPhone X. Displays on iOS devices have a variety of characteristics, including the size of the screen, which color spaces it supports, the rate at which the screen refreshes its contents, and the rate at which touch events are sampled and delivered. Understanding the characteristics of a specific device can be critical to producing the best user experience in your app.

As far as project requirements are concerned, it is now mandatory to add a Apppstore connect icon in the project bundle) as it is previously only handled at the Appstore connect. Missing 1024X1024 app icon in the project bundle now disallows the build to be successfully uploaded on Appstore connect for Xcode 9+. However for Xcode 8+ or lower, it may get upload but again the issue of showing build in-progress and then disappearing will surely be encountered.

2

Device Requirement:

There are possibilities that sometimes developed application is dependent on specific hardware feature of the device. So, we need to mention those capabilities in the Info.plist i.e. “Required Device Capabilities”. This information is used while installing the mobile application on the device which didn’t have the capabilties required for running the application. This information also used by Appstore to prevent from downloading application on device not having the required hardware support. This is not required if there is no specific requirement of device hardware usage in your application.

I3

Below is the screen shot showing that iphone 4 and 5 devices are not compatible with ARKIT and ARM64 but 6,7,8,X are compatible. Several other feature are also compared for the i-Devices.

4

AppStore Connect Screenshots for Super Retina(iPhone X) :

Appstore connect uses screenshots for different devices to be shown to users downloading application for the reference. While introduction of new iPhone X, they also updated Appstore connect to include images for the super retina display i.e. iPhone-X.
Now, we can upload screen shots for iPhone X while uploading app to iTunes Connect. However it is optional for now.

5

5.8-inch displays inside the screenshot on iOS app version information page, with resolution 1125 x 2436 pixels for portrait 2436 x 1125 pixels for landscape.

Plist Updates:

Now it is mandatory to add “CFBundleIconName” in the project’s info.plist. If this is not present, it will not throw any error while submitting app to Appstore connect. This value corresponds to the name of the AppIcon that is used in the Images.xcassets(Refer IMG004). However, you can see a wiered behaviour that after showing the uploaded build status as in-progress, after some time this build dissapears and Apple sends the email to admin stating about this error.

6

 

 

7

Purpose Strings in Info.Plist:
In recent updates by Apple, it is now mandatory to add purpose strings in Info.plist. Although it is independent of this thing whether the functionality regarding the purpose strings is implemented in the app or not. However Apple makes it mandatory to add it into the Info.plist. In the start of Spring 2019, any application which accesses the user data must explain why they explicitly needed that data. Appropriate keys for the different data is created by Apple and developer needs to add well explanatory message that why app needs this data. Right now, Location privacy keys require to be present in Info.plist with a message like:

NSLocationAlwaysUsageDescription:

NSLocationAlwaysUsageDescription
Explanation message why app require location always to be recorded.

NSLocationWhenInUseUsageDescription:

NSLocationWhenInUseUsageDescription
Explanation message why app require location to be recorded when app is in use.

Device Usage Descriptions Message:

Finally, I want to add a point about the descriptive messages that needs to be mentioned in the Info.plist for the usage of features like camera, gallery, microphone etc.

8

From past experiences, I got that Apple now recommends more descriptive message for the usage of device features so that when permission pop-up for access is prompted to the user, it clearly states why one wants to access that feature.

I tried to cover the things that developers faced while migrating to Xcode 8+ and also who are on Xcode 9+ but not aware of the changes till Apple mail them about the error while uploading build or rejecting the app.

About Author:

Qss author image Nagender Pratap: Sr. iOS Developer at QSS Technosoft having an experience of 3.5 years. A Swift Enthusiast, Special interest in AI. Eager to learn the about new trends in the mobile app development in native and cross platform.

About QSS:

QSS has a proven track executing iOS applications for its esteemed customers. The company has a core competency in developing and delivering Enterprise level iOS applications both in on Native and Hybrid platforms. The iOS competency has experienced and dedicated team of iOS mobile app developers. To Know More...