in Blog, Development

TiShadow – Getting Started (Part 2)

So this evening I was in a good mood and had some free time available. So combine those and you get part 2 of the getting started article, which wasn’t originally planned.

As I’m a very visual guy, I figured a few screenshots might help some of you get started building your custom client for iOS.

Step 1: Get the source code for the TiShadow client app.

Just head over to Github and download the zip from

Download TiShadow from Github

Step 2: Create a Project in Titanium Studio for our app. 

For our demo purposes we will just quickly import the source code into our project.  If you find that TiShadow is going to meet your needs, you will want to create a new, blank project and copy the source files into your new project.  I’ll explain the reasons for this later.

From the file menu of Titanium Studio, choose File then Import…

Tishadow02 0


We are going to import an Existing Titanium Project.

Tishadow02 1


Point the Project directory to the app directory inside the folder you extracted from the ZIP file you downloaded from Github in Step 1.


Step 3: Edit the tiapp.xml file to meet your environment.

You will need to change the Application Id to something different and unique if you intend to use this in an ad-hoc provisioning profile through the iTunes Connect site.



You may need to enable or disable some of the default modules. In this case, Tony Lukasavage’s module for android is unhappy with our development environment. Because I am not planning on building out a new android client right now, I’ll leave it.  You all need the latest CI build of the TiMobileSDK and Titanium Studio 3beta to get rid of this warning.  This is also where you would add any additional modules that you would plan on using in your application.  However, the imported project has a guid thats connected with David’s account. If you try to build with a module you downloaded from Appcelerator’s market you will end up with a warning about unlicensed modules.  This is one of the reason’s to build a clean project and copy over the source files into that project for a long term plan.

2012 11 29 1601


You will not enable cloud services here.  Doing so would connect cloud services to your TiShadow application and not to the project you will be pushing through TiShadow.  Later this week I’ll post a quick explanation on how to work around this.


Step 4: Build your project and run it on your iOS Simulator

Step 5: Starting TiShadow Server

Open up one terminal and run ’tishadow server’

After the server has started, put in the IP address of the system running your TiShadow Server. For now this will be your local machine.

Click Connect.

Open up a second terminal and change to the directory of a project you want to run through TiShadow.

2012 11 29 1733


Type ’tishadow run’ and if all is well, your app will appear within the TiShadow app.

Tishadow10 Tishadow11


Series Links

TiShadow – Getting Started (Part 1) 

TiShadow – Getting Started (Part 2)

TiShadow – Increasing Productivity in your Shop

TiShadow – Educational Potential

TiShadow – Taking it to the Cloud



  1. Stephen,
    I have followed all the steps. When I “tishadow run” I get

    [INFO] 139 file(s) bundled.
    [INFO] BUNDLE sent.

    I had previously cleaned (Project->Clean) the app.
    However the app is not showing in the Tishadow window (TiShadow is in connect state). Any ideas?

    • Thats good news, as it appears the TiShadow client has shipped up the bundle to the TiShadow server.

      So let’s do a little testing.

      With the TiShadow server running, you can open a web browser and visit http://localhost:3000/ and you will be shown a screen with 3 parts.

      List of connected devices on the right column.
      At the bottom is the console where you can see the connect client apps report whats going on.
      And in the top left is a pane in which you can actually enter code.

      If on the right you see your device connected, lets try to pass it some code:

      alert(‘Testing the Connection’);

      Hit the send code button and see if it shows up on the devices.

      I should also say, that if you have fat fingers like mine, on the client app the connection dialog may disappear and not actually connect if you miss hit just to the side of the connection pane.

Comments are closed.