Posted a bit of advice from developer’s point of view on finding a right outsourcing developer at iCombat blog. Check it or digg it if you like it.
Thanks!
Bloody hell I’ve just spend more than two hours trying to figure out why Xcode won’t publish to my iPhone.
Tried everything - started with our checklist published earlier then lots of ritual dancing and read two big manuals by other guys:
http://www.24100.net/2009/02/iphone-sdk-mobile-provisioning-0xe800003a-0xe8000001/
http://www.codza.com/how-to-fix-iphone-code-signing-errors
Finally - being 100% sure everything is set up properly - used the idea of “Clean all” from the last link - and it worked! Nothing has been changed, I just quit the Xcode and removed everything from “Build” folder of my app! Then started it again, hit “Build” button and it worked!
Apple is evil. Thousands of developers spend hours losing time with all code signing thing. These lines from codza is one good example:
I was on a roll, all done in 30 minutes. A quick look at the clock: 11:30pm. I’ll quickly package it all up, submit my update, and pick out a dark comedy on Netflix instant watch…
Little did I know that for the next two hours I will be beaten, cubed and ground into hamburger meat by Apple engineering’s probably most ingenious attempt to one up Turing’s theory of the “halting problem”: code signing.
I was reading stackoverflow and found one great idea on making client-server based high scores system for your iPhone games so as this is something we would need to develop soon, I’m posting it here so not to forget and I’ll update this post when we come up with our own solution. Actually I had a similar idea but benzado has formulated it nicely so here it is:
One idea that might be Good Enough:
- Let Secret1, Secret2, Secret3 be any random strings.
- Let DeviceID be the iPhone’s unique device ID.
- Let Hash(Foo + Bar) mean I concatenate Foo and Bar and then compute a hash.
Then:
- The first time the app talks to the server, it makes a request for a DevicePassword. iPhone sends: DeviceID, Hash(DeviceID + Secret1)
- The server uses Secret1 to verify the request came from the app. If so, it generates a DevicePassword and saves the association between DeviceID and DevicePassword on the server.
- The server replies: DevicePassword, Hash(DevicePassword + Secret2)
- The app uses Secret2 to verify that the password came from the server. If so, it saves it.
- To submit a score, iPhone sends: DeviceID, Score, Hash(Score + DevicePassword + Secret3)
- The server verifies using Secret3 and the DevicePassword.
The advantage of the DevicePassword is that each device effectively has a unique secret, and if I didn’t know that it would make it harder to determine the secret by packet sniffing the submitted scores.
Also, in normal cases the app should only request a DevicePassword once per install, so you could easily identify suspicious requests for a DevicePassword or simply limit it to once per day.
Disclaimer: This solution is off the top of my head, so I can’t guarantee there isn’t a major flaw in this scheme.
Written by benzado
Currently, I’m trying to figure out the best way to make online highscores system for our clients without having to invent the bicycle. It seems however there is no great solution yet. I was looking into OpenID but the evidence that at the moment it doesn’t allow easy automated identification using the iPhone’s deviceId feature:
http://factoryjoe.com/blog/2008/01/13/the-openid-mobile-experience/
http://openid.net/pipermail/specs/2009-January/002688.html
so likely we will come up with our own solution something like Benzado mentioned above
Good news for those who think about developing their iPhone application and have this work outsourced due to various reasons. A client of ours, based in US, has started an online blog telling in real time about the development of iCombat game which we are working on currently.
This is a really exclusive blog to read as there are not much resources of this kind and you are able to track the development of a great iPhone game from the very beginning!
Check “making iCombat” - the best advice on outsourcing your iPhone development.
This is one of my favorite quotes :) :
I posted an add and received about 10 responses within the first several days. Some were developers just spamming me, others had relevant experience but were divided into a range of ratings from 3.5 to 5 out of 5. I initially contacted the higher rated ones who had positive feedback on past assignments but with one from the Balkans I found that his English proficiency was far below what would be necessary to communicate effectively. He clearly was very talented but I got the feeling he was using Google translate to answer my e-mails. Another team from Pakistan spoke great English and they spent quite a bit of time on chat with me getting to understand the project. I liked them but their estimate came in at 4 man months - roughly 2-3x longer than anybody else! The process was tedious between getting NDA’s signed and sending out the specs to receive a quote (see Taking Care of the Legal Stuff entry) but I ended up with a few good options that I felt would work.
I decided on a team of developers from the Ukraine whom I had found worked on an application roughly similar to what I wanted to make. I contacted them and immediately knew they would be easy to work with. From their English level to experience with similar projects to their extensive list of published apps I knew Injoit could execute on what they promised. For more about the process of finalizing the specs and signing up with them see the related entry Contract Signed!. So far working with them has been great, they are timely and easy to communicate with so we will see what happens.
iCombat is a promising project which might become a bestseller in App Store so find the latest news on its development on its website and blog mentioned above. Feel free to comment and post your suggestions.

Injoit skating creative
after a corporate ice rink skating session, here is a piece of art by our designer Elena