I just released my second app in the iTunes app store – during the submission process I encountered a few hiccups that set my release date back a few days.

 

Quick backstory: About 2 and a half years ago I released a very simple (free) app. I recall this app submission as being problem-free and relatively smooth, although it took about 8 days for approval. Now I just released my second app in mid-September 2017 (this time a paid iOS app) to the app store. This latest app took only about 2 days to get responses back from Apple, however the entire process ended up taking me just over a week to complete. This is due to having a couple of issues with my builds that I had to correct. Hopefully by reading about my mistakes you can increase your chances of getting approved the first time around, so you can move on to the marketing phase which you’re probably anticipating!

1. Even if you develop strictly for iPhone, the app must work on iPads as well

This one caught me by surprise, because I had only planned on releasing on iPhone to begin with. I even specified in my Xcode Deployment Info settings that I wanted to build the app for iPhone only. My app was initially rejected because of lacking support for iPads. They stated that even if you develop for iPhone only, your app still needs to function and have a usable interface on iPads. Based on my analytics it seems that the Apple review team is strictly using the iPad Pro to test and review apps. Apple sent me a screenshot of my app looking badly cropped with massive black margins.

 

attachment-6481931939329847172Screenshot_0919_170542
My rejection came with this screenshot

 

To fix this, I changed the Deployment Target Devices to “Universal” and began testing on iPad using the emulator. Since I built my app using React-Native and it’s fairly responsive out of the box (using Flexbox) it already looked decent on iPad. I had to do some iPad specific optimizations to the design to make use of the bigger screen space. I used this package called React Native Device Info to determine if the user is on a tablet or mobile phone, and based on that I was able to display slightly different layouts.

2. Don’t be lazy and use your splash screen image as a screenshot

This one sounds pretty obvious off the bat, but after I had ensured my app worked fine on iPhone and iPad alike, I didn’t want to take the time designing promotional screenshots for the iPad yet. We had already designed some nice iPhone promotional screenshots. I just wanted to get this thing submitted and approved, and I figured I would update the iPad screenshots afterwards. Well, turns out that was a bad idea. After this 2nd try, I received a “Metadata Rejected” notification. Apple indicated that I needed to have screenshots of the actual app in use. So, due to my lack of patience, I caused myself another couple days of waiting for the app to be approved.

3. React-Native’s No Bundle URL Present Error Message

Fast-forward a few days after submitting to the App Store and finally getting approved: I had to continue development on my app. I started encountering these “red screen of death” errors that No Bundle URL was present. One of the last steps in react-native development before submitting to the app store involves Enabling App Transport Security (removing the localhost entry from the NSExceptionDomains dictionary in your Info.plist file).

However it had been a week or so since I had done that, and it was done in the late hours of the night, so it didn’t come to mind immediately. It took me a good hour of head scratching and trying different things to figure out what was going on. I came across this github issue on the react-native repo which pointed me in the right direction. I ended up adding the following to my Info.plist and was able to fix the issue:

 

<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<true/>
		<key>NSAllowsArbitraryLoadsInWebContent</key>
		<true/>
		<key>NSAllowsLocalNetworking</key>
		<true/>
	</dict>
</key>

 

From my limited experience it seems that the app store acceptance process is a bit more rigorous than it was in the past, although it’s quicker now. As of 2016, Apple claims to process most app store submissions within 48 hours. I have a feeling that paid apps might be reviewed with more scrutiny than free apps (I couldn’t find any evidence to back up this claim, it’s just a hunch based on my experience).

Overall, I’m excited to continue working with React Native and will be developing more apps in the near future. If I come across any other tips that seem useful I’ll write about them in an upcoming blog post. I hope this helps you with your next app submission!

Check out the app we developed called Story Slicer, which allows you to cut long videos into short clips for social media stories.

Leave a Reply