Smartphones ring up business

July 13, 2009 Leave a comment

Here is an nice article from the Omaha World Herald featuring I.COM



Categories: Blog, iPhone, Photowall

How to automatically build an IPA file from XCode

May 26, 2009 34 comments

I have long since forgotten where I first read this, but I hope this will help an iPhone developer looking to simplify the process for sending their app to their user(s) via AdHoc.

Create a View-Based application project in xcode like so:


I named mine HelloWorld ( How original!! ). After telling XCode where to store your project, you should be presented with a window similar to this:


If you expand the Nib Files smart folder you should be presented with a window similar to this:


If you named your project Hello World like I did, you should see a file called HelloWorldViewController.xib. Double click on HelloWorldViewController.xib to open the file in Interface Builder.

In Interface Builder, open up the Library ( Tools-> Library or Command-Shift-L) and Inspector  (Tools-> Inspector or Command-Shift-I) panels.  Drag over a UILabel and center in the view and change the text to HelloWorld by double clicking on the label and changing the text. You should have something similar to this:


You can close interface builder at this point. Going back to XCode, expand the Targets item and control-click ( or right click if using a multi button mouse ) and select Add->New Target and select “Other” at the bottom left and choose the Aggregate option similar to this:


And name the new target IPA:


On the next screen be sure the add HelloWord target as a direct dependency by clicking the plus button in the lower right corner under the Direct Dependencies section like this:


Close this window once you are done adding HelloWorld target as a direct dependency of IPA target. Right click or control-click on the IPA target and select the Add->New Build Phase->New Run Script Build Phase menu item and add the following code:

if [ $BUILD_STYLE != “AdHoc_Distribution” ]; then



# compress application.



/bin/cp images/logo_itunes.png $CONFIGURATION_BUILD_DIR/iTunesArtwork


# zip up the HelloWorld directory

/usr/bin/zip -r HelloWorld.ipa Payload iTunesArtwork

The run script window should look like this:


Now you can choose to run the IPA target instead of the HelloWorld target to compile the application and turn it into HelloWorld.ipa file that your users can bring directly into iTunes simply by double clicking on it.


In the directory where you apps are built, you should find a file called HelloWorld.ipa:


One last note: in the above script there are a few lines of code that will exit the shell script if the build configuration isn’t AdHoc_Distribution

if [ $BUILD_STYLE != “AdHoc_Distribution” ]; then



You actually don’t need these lines, I always create an AdHoc configuration that is used for sending out any betas to the testing group.  You can either create a build configuration call AdHoc_Distribution and make sure its selected before you build, or just remove the code ( three lines ) altogether.  You can download the complete project here

If you are having problems installing your adhoc application via iTunes, check that the distribution profile that you are using has the correct device and that you have a dist.plist file in your XCode project with the following contents:

<?xml version=”1.0″ encoding=”UTF-8″?>

<!DOCTYPE plist PUBLIC “-//Apple//DTD PLIST 1.0//EN” “”&gt;

<plist version=”1.0″>






Categories: Blog, iPhone Tags:

Site is broken in IE 6

May 11, 2009 Leave a comment

My wife has informed me that the form on the contact us doesn’t render correctly in Internet Explorer 6.  Works in IE8.. So it works so far as I’m concerned.  Who the hell is using IE6 anyway?

Categories: Blog

New I.COM website

May 11, 2009 1 comment

I have just deployed our new website this morning. I hope that our customers will find this version much better suited to communicating with us at I.COM.  I will be blogging a bit about our exciting new product Photowall. Until then, time to get some sleep!!

Categories: Blog