Mobile Development

My new blog

Please find my new blog at:

http://www.onidev.com/blog/

While this blog didn’t really take off like I wanted it to, the new one will focus specifically around iPhone, Games Development, and my company OniMobi.

If your reading this from a RSS Reader, the RSS feed for the new blog is:

feed://www.onidev.com/feed/

I’ll no longer be checking or posting to this blog, so I’d recommend following me to my new one :)

A change to this Blog

Soon ™, this blog will be moving to OniMobi, where I will focus my posts on Games Development, and my new business.

So watch this space (if anybody does in fact follow this blog - which seems unlikely)!

Over the Air 2009 is coming

Friday, 25 September 2009 to Saturday, 26 September 2009.
At the Imperial College in London.

Check out the website for more info:
http://overtheair.org/

Restrictions for AdHoc Testing

Another wise move by Apple to frustrate and alienate it’s developers. Thanks a lot Apple.

In short you can now only register 100 AdHoc devices per year, not at any one time. Why the hell did they change that? If anything, we’re all begging for more AdHoc versions!!

How on earth can you run a large scale beta test of a game with the current system? Answer: You can’t.

Check out this post for a full explanation:

The rules surrounding adding devices have changed

Learning OpenGL

Jeff LaMarche (who’s blog you should definitely be following), has posted some useful intro tutorials on OpenGL.

You might find them useful if your new to OpenGL and trying to get to grips with it.

Check them out here.

F1 Insider now available!

F1 Insider, our latest iPhone app for Formula 1 has just been released!

Check it out: http://www.f1insider.co.uk/download/

The Formula 1 2009 Season is coming!

We just submitted F1 Insider to Apple, so it should hopefully be available for purchase on the App Store early next week.

F1 Insider brings all the latest information on the 2009 Formula 1™ Season to your finger tips. Follow the F1 Insider team as we go through what looks set to be the most exciting Formula 1™ World Championship to date!

You can find more information at the official website: http://www.f1insider.co.uk

Redline released

We’ve just released Redline, our first iPhone app based on our own IP.

Check it out on the AppStore!

iPhone Ad Hoc Code signing Gotchas

Theres a few gotchas with code signing which I’ve found can result in errors when installing an Ad Hoc application onto a user’s iPhone through iTunes, usually of the sort: “Application Redline was unable to be installed on the iPhone (Mitch iPhone) because it could not be verified”.

This error is really a generic error that says the iPhone could not verify the code signature, and so didn’t complete installing.

Things to double check:

  1. Bundle Identifier is correct and matches with the one selected in the Provisioning Profile.
  2. The deviceID has been correctly added to the Provisioning Profile.
  3. The Entitlements.plist file has been added to the project (see the howto doc on Distribution profiles). This is what catches most people out, since you don’t need it for development.
  4. Ensure the get-task-allow check box is unticked in the Entitlements.plist
  5. The Provisioning Profile has been dragged into iTunes as well as the .app or .ipa file.

Also, for AdHoc distribution, I’d recommend packaging up the .app as an ipa file. This is better compatability for windows, because a .app file is a just a folder, and it also allows the iTunesArtwork to be displayed.

At Greenius we use a simple script to package up an AdHoc build. Note you should edit the variables at the top for the appname and the build folder. Later I plan to update this so its a bit more flexible and can take the options from the command line. It also expects a iTunesArtwork.png file for the iTunesArtwork, which should be a 512×512 png.

Download adhocpackage script

Dynamic multi-line UILabel

Quick tip if you want a dynamic multi-line UILabel (i.e you don’t know how many lines there will be), just use this:

myLabel.numberOfLines = 0;

Easy!