Wednesday, June 29, 2011

Distribute your iPhone/iPad adhoc builds Over The Air using Dropbox

Update: I recently found this site called diawi.com which allows you to distribute the app similar to file-sharing sites, drag and drop ipa file and share the link to the testers.



Yes, there is an awesome service by Testflight App which I highly recommend. Not because I received their stickers for being an early adaptor :). It does so many things which makes distributing app for beta testing a breeze, go try it yourself.

I was just curious to know how OTA works, after testing with own web server for internal testing, I thought why can't I do this with Dropbox?


  • Build your app from xcode using Build and Archive option.
  • Upload your ipa file to Dropbox. And get public link for the ipa.
  • Download the manifest.plist file from https://gist.github.com/1051160 and edit the line #14 with the public link of your ipa. Modify other keys as well (bundle-identifier, bundle-version, title)
  • Upload the modified manifest.plist to Dropbox and get its public link.
  • Download index.html from https://gist.github.com/1051163 and edit url param at line #8 with public link of your manifest.plist
  • Upload the index.html to Dropbox and share the public link of it with your beta testers.

Upload your ipa
Copying public link

All files, copying public url for index.html 


Installing the app




App icon will be disappeared once the installation complete (which is weird), but restarting the device does solve the issue. You have your app on springboard for testing. Enjoy delivering your adhoc builds to your testers by distributing over the air.

NO iTunes FTW.

Wednesday, June 15, 2011

Shell script to generate images for testing


Recently I was in need of generating sample images for no. of products in my db. I really hate to create a copy of image for each products in my db.

I modified my previous shell script to automate the process of creating random images for given no. of product ids with relatively smaller no. of sample images.


scriptsDir$sh randomImages.sh
Completed generating 74 images from 5 sample images.

Find the Gist at https://gist.github.com/1026973


How to view (Windows) line ending characters on Mac OSX

Notepad++ on windows has this beautiful option "View all characters" to display all invisbile characters such as line endings.




Programming editors on mac like Textwrangler and Textmate has an option to Show Invisibles but failed to display the character block for Carriage Return as Notepad used to.

Textwrangler beats Textmate on this case where it display two special characters to refer CR and LF, where Textmate display only one character.

Textwrangler

Textmate


Our recent iPad project write csv file which is further parsed by a third party app. The 3rd party app requires the line ending to be a combination of Carriage Return (CR) and Line Feed(LF) instead of just Line Feed (LF) as traditional Unix/Mac. To test the csv generated is good, I had to view the character myself in any other editor.

After few failed attempts with both Textwrangler and Textmate, I came across this powerful unix tool called OctalDump (od) which is part of OSX.

od -c filename.csv

will display the file with C-Style escaped characters. CR as \r and LF as \n. It has numerous no. of options to explore.




Wednesday, June 1, 2011

Recommended Git workflow

I recently started using Git as my revision control tool. Impressed by the use of branching and merging, I create and merge a lot of branches. Our company use SVN and other peers were not aware/interested in Git. So I took the initiative to use svn-git. After months of progress I left with so many branches for features, svn, QA-release and quick-fix for released builds.

I did a quick search and find a good Git workflow by Vincent Driessen. I found it very useful, and I recommend the same. Not necessary that it should be used with Git only; if you are brave enough you could follow the same with SVN too.

A successful Git branching model - by Vincent




  1. Why Git is better than SVN
  2. Git - SVN Crash course
  3. Git - cheat sheets