I thought I’d write a brief post detailing my quest to submit my new Wordzie app on the iOS App Store. This was the first time I’d ever attempted this, so I expected there to be some roughness along the way, but I was in for quite a ride.
To start off, the development process. I will say that learning Swift was a very enjoyable endeavor; being a Java developer, the automated memory management that came with ARC made me feel right at home, and I was a fan of the simplistic syntax. Apple’s Swift tutorials covered everything I needed to know and more! Xcode, however, was a completely different story. I’m not sure if Apple actually attempted to test Xcode 6 before its release, but it sure didn’t seem like it – as I started development in version 6.1, I was crashing at least eight or nine times an hour, and the syntax auto-completion only worked a fraction of the time. It got to the point where I wrote the entire app’s server management in detail before I even began work on the app itself – and once I was finished, I stalled for as long as I could to open up Xcode again.
It wasn’t until Xcode 6.1.1 came out that I started the app’s development again – an undoubtedly more stable release, but still packed with issues. It was a lot of fun to mess around with the storyboard, and any questions I had could easily be answered by a quick search through Stack Overflow. It only took about three weeks of active coding to finish the first iteration of the app. It’s all smooth and easy after that, right?
Wrong. In fact, preparing the app for production made dealing with a buggy Xcode seem like heaven on earth.
Aside from getting all the proper certificates set up using Keychain Utility and the necessary build settings set up, it was miserable trying to get push notifications ready for release. In fact, I’ve still yet to finalize their implementation for distribution – that will have to come at a later time. At the time I finally managed to get my app submitted for review, I was ready to throw my MacBook Air through the window and smash the iPhone I had used for testing. This was the start of the torturing 9 day “Waiting for Review” period where my constant refreshing of the iTunes Connect page most likely appeared to Apple as a continuous DDOS attack. On the Friday I saw my app switch to the “In Review” state, my neighbors probably heard my victory cry from across the street; this feeling was short lived, however, as I was slapped in the face with a rejection just half an hour after with the most obvious reasoning possible: “2.1 – apps that crash will be rejected.”
WHAT?! I had tested this app inside and out both on Xcode’s built in simulator and on my iPhone itself! Impossible! INCONCEIVABLE!
Well, it was obviously possible. Off I go researching what could have gone wrong – after at least an hour of searching, I decide to load up the exact build I submitted to Apple onto my iPhone with iTunes. Of course, as soon as I fire it up, I am faced with a crash. Those pesky app reviewers were right, but how? My stubbornness that usually does me harm came in handy – I needed closure.
Two hours of nail-biting research later (I was at least on page 19 of Google search results), I come across something that seems so far out that it may actually be the cause – the Xcode “Optimization Level” build setting. It seemed that this setting was different for debug and distribution purposes. I quickly open up Xcode and change my scheme to match distribution, and am faced with the EXACT same crash on the simulator. Brilliant.
It has now been nine days since I resubmitted the app with the working optimization level (which in my case was none), and right on queue, it’s now showing up as “In Review” on iTunes Connect. I hope I get lucky this time around, but I have a lingering feeling that I’m going to be faced with another rejection. Perhaps it’s just PADSD – post app-development stress disorder. I don’t know what to think anymore.
Hopefully this post comes in handy for someone having the same issues I had. I’ll post again once the app is finally accepted.
Oh, also, I haven’t forgotten about Mekanism, nor the v8 release. I should be getting back on that within the next few weeks.