Skip to content

The .xamarin Convention

Joshua Moody edited this page Feb 9, 2014 · 3 revisions

The .xamarin convention helps manage devices, projects, and XTC accounts by stashing all of your calabash configuration details in one place.

  • Do you have more than one device?
  • More that one calabash project?
  • Are you working cross-platform?
  • Are your device IP address not stable?
  • Do you have an XTC account?

If you answered yes to any of those questions, .xamarin will improve your workflow.

create the ~/.xamarin directories'

$ cd ~/.xamarin
$ tree -L 1
├── devices     <== store serial numbers, ips, and udids by common name
├── ios-resign  <== store ios resigning details
└── test-cloud  <== store device sets and api tokens

define some devices

# name your devices - here i use planets for iOS and robots for android
#      iOS - create 2 text files per device to store the ip and udid
#  Android - create 1 text file per device to store the serial number
$ tree devices -L 3
├── marvin
│   └── serial  <== 4df<snip>009
├── neptune
│   ├── ip      <== http://192.168.2.104:37265
│   └── udid    <== 43be<snip>1124
├── r2d2
│   └── serial
└── venus
    ├── ip
    └── udid

working in teams

# if you work in a team you can use canonical device names to create 
# semantically equivalent cucumber profiles 
$ tree devices -L 2
devices
├── galaxy_S3 -> r2d2    <== use symlinks to create team-level devices
├── galaxy_10 -> marvin
├── ipad -> venus
├── iphone -> neptune
├── marvin
│   └── serial
├── neptune
│   ├── ip
│   └── udid
├── r2d2
│   └── serial
└── venus
    ├── ip
    └── udid

Example

https://gist.github.com/jmoody/8722820