Getting there was tricky. Very tricky indeed. Here's how it went down.
On Sunday - well, Monday morning about 1am - we decided that enough was enough and we should stop fiddling around and submit the damn thing.
Step one was to create a distribution provisioning profile. This was actually remarkably easy and calmed my nerves considerably for the journey ahead. It was also something of a false dawn.
CompilationBack in to Unity and time to switch everything from development to distribution. Turning off the development settings, putting in the icons for the app itself and setting up a folder for the distribution build. Then building it with the new settings before nipping over to Xcode.
I knew I needed something to upload but I couldn't see anything that looked remotely uploadable. Some Google-fu later and I'm downloading the App Loader. As it turns out, this was a complete waste of time, but hey.
So back in XCode and I'm fairly sure I have to build the thing here as well. During development, I didn't use XCode at all - I'd select the Build and Run option in Unity and it would do the rest. Later on I might use XCode to toggle between the various devices I had connected or simply press the run button when it had already been built and I wanted to run it again on a different device. Anyhow, it wasn't hard to find the build option in XCode.
But that didn't work. It wouldn't link. It threw up a bunch of errors in the IAP code which, as I've mentioned before, wasn't my code and, as such was a very scary place to be. In fact, I didn't really know where that code was and why it wasn't being linked. After some depressing head-desking, I thought I might try changing the destination folder back to the one I'd been using for development on the assumption that the files that needed linking would still be there and it'd all work.
Success! Hooray for making it up as you go along! The game could be built in XCode. Now all I had to do was fire it off with the App Launcher and we would be submitted.
But no. The App Loader couldn't find a particular file to upload. Another problem being that I didn't actually know what sort of file I was looking for in the first place. Google-fu. Ah, a .IPA file by the looks of it. Sadly, one was nowhere to be found.
More Google-fu referred to another approach. One that didn't require the App Loader at all. Interesting. Instead, I could use XCode to archive the project and distribute it afterwards. Brilliant!
Hitting Archive (once I'd found the menu that took me there), I discovered it was basically another Build button. One that didn't work again. There were two problems - firstly, it didn't like the icon we'd given it. It was complaining that it wasn't a PNG file even though I could see that it was. Secondly, the ARM7s support was... well, not supported.
I was getting stressed and further and further away from my comfort zone.
Fixing the PNG file was easy - I just loaded it in to Photoshopped and saved it out again. That seemed to work. Great.
The ARM7s thing needed more Google-fu before I eventually found how to disable that thing in the Build Options. Now the archiving was successful... apart from a mis-matched version number. The version number of the project didn't match the one in the app information back up on iTunes Connect.
Back to Unity and a change to the version number to make sure it matched.
Another archive later and the same error. Well, that didn't make sense at all. Some more rummaging around in another part of XCode's build settings revealed another, separate version number. Changing that up and everything worked.
Now I could hit distribute and send our baby off in to the ether.
In fact, excitedly zinging back to iTunes Connect revealed our status had changed from Waiting For Binary to Waiting For Review. Very exciting indeed! It was 4am - total time elapsed, about 3 hours. I went to bed as we had to be up early for a funeral the following day.
Before setting off, I though a quick check was in order. Of course, I wasn't expecting it to be approved just yet, but I had to look. Good job too. It had change from Waiting For Review to a little red light that told me that a screenshot was missing. Turns out, when you submit, you have to submit at least one screenshot per aspect ratio. We'd done 5 shots, all in the 3:4 ratio for the iPad. A simple but tedious fix.
So that's that. At the time of writing, the app is still Waiting For Review and there is nothing further for us to do. Best guess is between 10-14 days before we hear anything. Assuming, of course, that there are no further problems with the submission paperwork. Who knows what it could fail on?
It has been a very harrowing 24 hours. I feel exhausted. Drained. Properly put through the wringer. The linker problems in particular caused me no end of distress. My Google-fu alternately returned gems and garbage in equal measure - there's a lot of out-of-date information on the internet it would seem. I'm think I've learned a bit about the procedure required now though, which is something I guess.
I still stand by my assertion that it has never been easier to make a game than now, but let it be said that publishing remains a shade on the troublesome side for the inexperienced.