iOS simulator directory command line tool
19 Aug 2012I made my first Ruby gem and more importantly it solves a problem that really frustrates me (ever so occasionally).
The problem is that I tend to hang out on StackOverflow answering questions, which often means I end up writing code. To test the code works I’ll jump into Xcode and create a new project but save it to /tmp
so I don’t get clutter on my hard drive. This leads to the following mess in my simulators directory
When it comes time to do some real work and I need to check the contents of a real app I hit this mess, which is annoying and often leads to applying a sort on date to find likely folders to look in.
So I took this opportunity to have a play with a few concepts
- Making a gem
- Making a command line tool
- Playing with state machines
The quick project has indeed served it’s purpose - I actually wrote some code and didn’t just think about writing it and I got to play with the above concepts.
#The tool
I called it sidir
as an abbreviation for “Simulator Directory” and because it sounds like the refreshing beverage.
So providing I didn’t mess something fundamental up the following should work (it works for me at least with Ruby 1.9.3)
gem install sidir
From there we can start it up with
sidir
We’ll get the sidir prompt which also tells you where it is in relation to the sim directory
sidir / >
(Serious draw back #1 it is hard coded to start in ~/Library/Application Support/iPhone Simulator/
)
From here we can get the available commands with help
sidir / > help
cd <item> - change to directory at <item>
ls - list available simulators
show - open Finder here
So let’s see what is around with ls
sidir / > ls
4.3.2
5.0
5.1
I can get finder to open here with show
but I’ll cd
into the 5.1 sims directory
sidir / > cd 5.1
(There is some basic tab completion - another thing I wanted to play with)
Let’s see what commands we have available here
sidir /5.1 > help
cd <item> - open finder at <item>
cd .. - move back to simulators
ls - list available applications
show - open Finder here
rm <item> - delete the application <item> and all associated data
reset <item> - clean all paths in <item> as if the app is freshly installed
We have slightly more things to do.
Things to note
cd <item>
will open up Finder - I didn’t bother going any further as it would just be replicating normal shell behaviourrm
andreset
work on apps not the whole sims directory
The idea behind reset
was to take an application directory and clean it all out just leaving what is installed by default. This kind of emulates a clean install - I’m not sure how useful this actually is as there is also rm
which just deletes the whole application folder, which I find a lot quicker/easier than tap and holding in the simulator until the apps wobble and then clicking the x
and then… you get the point.
#Conclusion
Making a gem was fun but I got tripped up a lot as it was my first gem and I had to learn about the structuring etc. I’ve got a simple utility that I find handy even if it just an elaborate way to easily get the application names. I’ve slapped this on github and it’s available as a gem - who knows someone else might find a use for it.
I have also found it amazing how just after I hit deploy on a gem, public github or a blog I find a great number of spelling mistakes, issues or oversights that I then have to jump in and correct. Upto version 0.0.3 already!!!