@jlipps
I have a concern about the safari mobile launch in real device. I have used the appium 1.5.0 version. While installing the appium I could see the safari-launcher in tree structure. When I ran the script I am getting the error saying unable to locate the safari launcher in the directory. Here am sharing the tree structure:
/usr/local/lib
└─┬ appium@1.5.0
├─┬ appium-android-driver@1.6.12
│ ├── adm-zip@0.4.7
│ ├── appium-adb@2.4.3
│ ├─┬ appium-android-bootstrap@2.5.1
│ │ ├── appium-uiautomator@1.1.0
│ │ └── net@1.0.2
│ ├── appium-android-ime@2.0.0
│ ├─┬ appium-chromedriver@2.8.0
│ │ ├─┬ continuation-local-storage@3.1.6
│ │ │ ├─┬ async-listener@0.5.6
│ │ │ │ └── shimmer@1.0.0
│ │ │ └─┬ emitter-listener@1.0.1
│ │ │ └── shimmer@1.0.0
│ │ ├── is-os@1.0.0
│ │ └─┬ ps-node@0.0.5
│ │ └── table-parser@0.0.3
│ ├── appium-unlock@0.0.1
│ ├── io.appium.settings@2.1.0
│ ├─┬ temp@0.8.3
│ │ ├── os-tmpdir@1.0.1
│ │ └── rimraf@2.2.8
│ └─┬ yargs@3.32.0
│ ├── camelcase@2.1.0
│ ├─┬ cliui@3.1.0
│ │ ├─┬ strip-ansi@3.0.1
│ │ │ └── ansi-regex@2.0.0
│ │ └── wrap-ansi@1.0.0
│ ├─┬ decamelize@1.1.2
│ │ └── escape-string-regexp@1.0.5
│ ├─┬ os-locale@1.4.0
│ │ └─┬ lcid@1.0.0
│ │ └── invert-kv@1.0.0
│ ├─┬ string-width@1.0.1
│ │ ├─┬ code-point-at@1.0.0
│ │ │ └── number-is-nan@1.0.0
│ │ └── is-fullwidth-code-point@1.0.0
│ ├── window-size@0.1.4
│ └── y18n@3.2.0
├─┬ appium-base-driver@1.3.0
│ ├── lodash@4.5.1
│ ├─┬ request@2.69.0
│ │ ├── aws-sign2@0.6.0
│ │ ├─┬ aws4@1.2.1
│ │ │ └── lru-cache@2.7.3
│ │ ├── bl@1.0.3
│ │ ├── caseless@0.11.0
│ │ ├─┬ combined-stream@1.0.5
│ │ │ └── delayed-stream@1.0.0
│ │ ├── extend@3.0.0
│ │ ├── forever-agent@0.6.1
│ │ ├─┬ form-data@1.0.0-rc3
│ │ │ └── async@1.5.2
│ │ ├─┬ har-validator@2.0.6
│ │ │ ├─┬ commander@2.9.0
│ │ │ │ └── graceful-readlink@1.0.1
│ │ │ ├─┬ is-my-json-valid@2.13.1
│ │ │ │ ├── generate-function@2.0.0
│ │ │ │ ├─┬ generate-object-property@1.2.0
│ │ │ │ │ └── is-property@1.0.2
│ │ │ │ └── jsonpointer@2.0.0
│ │ │ └─┬ pinkie-promise@2.0.0
│ │ │ └── pinkie@2.0.4
│ │ ├─┬ hawk@3.1.3
│ │ │ ├── boom@2.10.1
│ │ │ ├── cryptiles@2.0.5
│ │ │ ├── hoek@2.16.3
│ │ │ └── sntp@1.0.9
│ │ ├─┬ http-signature@1.1.1
│ │ │ ├── assert-plus@0.2.0
│ │ │ ├─┬ jsprim@1.2.2
│ │ │ │ ├── extsprintf@1.0.2
│ │ │ │ ├── json-schema@0.2.2
│ │ │ │ └── verror@1.3.6
│ │ │ └─┬ sshpk@1.7.4
│ │ │ ├── asn1@0.2.3
│ │ │ ├─┬ dashdash@1.13.0
│ │ │ │ └── assert-plus@1.0.0
│ │ │ ├── ecc-jsbn@0.1.1
│ │ │ ├── jodid25519@1.0.2
│ │ │ ├── jsbn@0.1.0
│ │ │ └── tweetnacl@0.14.0
│ │ ├── is-typedarray@1.0.0
│ │ ├── json-stringify-safe@5.0.1
│ │ ├─┬ mime-types@2.1.10
│ │ │ └── mime-db@1.22.0
│ │ ├── node-uuid@1.4.7
│ │ ├── oauth-sign@0.8.1
│ │ ├── qs@6.0.2
│ │ ├── stringstream@0.0.5
│ │ ├── tough-cookie@2.2.1
│ │ └── tunnel-agent@0.4.2
│ ├── source-map-support@0.4.0
│ ├── uuid-js@0.7.5
│ └── validate.js@0.9.0
├─┬ appium-express@1.2.1
│ ├─┬ body-parser@1.15.0
│ │ ├── bytes@2.2.0
│ │ ├── content-type@1.0.1
│ │ ├── debug@2.2.0
│ │ ├── depd@1.1.0
│ │ ├─┬ http-errors@1.4.0
│ │ │ └── statuses@1.2.1
│ │ ├── iconv-lite@0.4.13
│ │ ├─┬ on-finished@2.3.0
│ │ │ └── ee-first@1.1.1
│ │ ├── qs@6.1.0
│ │ ├─┬ raw-body@2.1.5
│ │ │ └── unpipe@1.0.0
│ │ └─┬ type-is@1.6.11
│ │ └── media-typer@0.3.0
│ ├── colors@1.1.2
│ ├─┬ express@4.13.4
│ │ ├─┬ accepts@1.2.13
│ │ │ └── negotiator@0.5.3
│ │ ├── array-flatten@1.1.1
│ │ ├── content-disposition@0.5.1
│ │ ├── cookie@0.1.5
│ │ ├── cookie-signature@1.0.6
│ │ ├── escape-html@1.0.3
│ │ ├── etag@1.7.0
│ │ ├── finalhandler@0.4.1
│ │ ├── fresh@0.3.0
│ │ ├── merge-descriptors@1.0.1
│ │ ├── methods@1.1.2
│ │ ├── parseurl@1.3.1
│ │ ├── path-to-regexp@0.1.7
│ │ ├─┬ proxy-addr@1.0.10
│ │ │ ├── forwarded@0.1.0
│ │ │ └── ipaddr.js@1.0.5
│ │ ├── qs@4.0.0
│ │ ├── range-parser@1.0.3
│ │ ├─┬ send@0.13.1
│ │ │ ├── destroy@1.0.4
│ │ │ ├── http-errors@1.3.1
│ │ │ └── mime@1.3.4
│ │ ├── serve-static@1.10.2
│ │ ├── utils-merge@1.0.0
│ │ └── vary@1.0.1
│ ├── method-override@2.3.5
│ ├─┬ morgan@1.7.0
│ │ ├── basic-auth@1.0.3
│ │ └── on-headers@1.0.1
│ └─┬ serve-favicon@2.3.0
│ └── ms@0.7.1
├─┬ appium-fake-driver@0.1.9
│ ├─┬ babel-core@5.8.24
│ │ ├── babel-plugin-constant-folding@1.0.1
│ │ ├── babel-plugin-dead-code-elimination@1.0.2
│ │ ├── babel-plugin-eval@1.0.1
│ │ ├── babel-plugin-inline-environment-variables@1.0.1
│ │ ├── babel-plugin-jscript@1.0.4
│ │ ├── babel-plugin-member-expression-literals@1.0.1
│ │ ├── babel-plugin-property-literals@1.0.1
│ │ ├── babel-plugin-proto-to-assign@1.0.4
│ │ ├── babel-plugin-react-constant-elements@1.0.3
│ │ ├── babel-plugin-react-display-name@1.0.3
│ │ ├── babel-plugin-remove-console@1.0.1
│ │ ├── babel-plugin-remove-debugger@1.0.1
│ │ ├── babel-plugin-runtime@1.0.7
│ │ ├─┬ babel-plugin-undeclared-variables-check@1.0.2
│ │ │ └── leven@1.0.2
│ │ ├── babel-plugin-undefined-to-void@1.1.6
│ │ ├── babylon@5.8.35
│ │ ├─┬ chalk@1.1.1
│ │ │ ├─┬ ansi-styles@2.2.0
│ │ │ │ └── color-convert@1.0.0
│ │ │ ├── has-ansi@2.0.0
│ │ │ └── supports-color@2.0.0
│ │ ├── convert-source-map@1.1.3
│ │ ├─┬ detect-indent@3.0.1
│ │ │ ├── get-stdin@4.0.1
│ │ │ └── minimist@1.2.0
│ │ ├── esutils@2.0.2
│ │ ├── fs-readdir-recursive@0.1.2
│ │ ├── globals@6.4.1
│ │ ├─┬ home-or-tmp@1.0.0
│ │ │ └── user-home@1.1.1
│ │ ├─┬ is-integer@1.0.6
│ │ │ └── is-finite@1.0.1
│ │ ├── js-tokens@1.0.1
│ │ ├── json5@0.4.0
│ │ ├─┬ line-numbers@0.2.0
│ │ │ └── left-pad@0.0.3
│ │ ├─┬ minimatch@2.0.10
│ │ │ └─┬ brace-expansion@1.1.3
│ │ │ ├── balanced-match@0.3.0
│ │ │ └── concat-map@0.0.1
│ │ ├─┬ output-file-sync@1.1.1
│ │ │ └── xtend@4.0.1
│ │ ├── path-exists@1.0.0
│ │ ├── path-is-absolute@1.0.0
│ │ ├── private@0.1.6
│ │ ├─┬ regenerator@0.8.35
│ │ │ ├─┬ commoner@0.10.4
│ │ │ │ ├─┬ detective@4.3.1
│ │ │ │ │ ├── acorn@1.2.2
│ │ │ │ │ └── defined@1.0.0
│ │ │ │ ├── glob@5.0.15
│ │ │ │ ├── graceful-fs@4.1.3
│ │ │ │ └── q@1.4.1
│ │ │ ├─┬ defs@1.1.1
│ │ │ │ ├─┬ alter@0.2.0
│ │ │ │ │ └── stable@0.1.5
│ │ │ │ ├── ast-traverse@0.1.1
│ │ │ │ ├── breakable@1.0.0
│ │ │ │ ├── esprima-fb@15001.1001.0-dev-harmony-fb
│ │ │ │ ├── simple-fmt@0.1.0
│ │ │ │ ├── simple-is@0.2.0
│ │ │ │ ├── stringmap@0.2.2
│ │ │ │ ├── stringset@0.2.1
│ │ │ │ ├── tryor@0.1.2
│ │ │ │ └─┬ yargs@3.27.0
│ │ │ │ ├── camelcase@1.2.1
│ │ │ │ └─┬ cliui@2.1.0
│ │ │ │ ├─┬ center-align@0.1.3
│ │ │ │ │ ├─┬ align-text@0.1.4
│ │ │ │ │ │ ├── kind-of@3.0.2
│ │ │ │ │ │ ├── longest@1.0.1
│ │ │ │ │ │ └── repeat-string@1.5.2
│ │ │ │ │ └── lazy-cache@1.0.3
│ │ │ │ ├── right-align@0.1.3
│ │ │ │ └── wordwrap@0.0.2
│ │ │ ├── esprima-fb@15001.1.0-dev-harmony-fb
│ │ │ └─┬ recast@0.10.24
│ │ │ ├── ast-types@0.8.5
│ │ │ └── source-map@0.4.4
│ │ ├─┬ regexpu@1.3.0
│ │ │ ├── esprima@2.7.2
│ │ │ ├── regenerate@1.2.1
│ │ │ ├── regjsgen@0.2.0
│ │ │ └─┬ regjsparser@0.1.5
│ │ │ └── jsesc@0.5.0
│ │ ├── repeating@1.1.3
│ │ ├── resolve@1.1.7
│ │ ├── shebang-regex@1.0.0
│ │ ├── slash@1.0.0
│ │ ├── source-map@0.4.4
│ │ ├─┬ source-map-support@0.2.10
│ │ │ └── source-map@0.1.32
│ │ ├── to-fast-properties@1.0.1
│ │ ├── trim-right@1.0.1
│ │ └── try-resolve@1.0.1
│ ├── bluebird@3.3.1
│ ├── source-map-support@0.4.0
│ ├── xmldom@0.1.22
│ └── xpath@0.0.9
├─┬ appium-ios-driver@1.8.7
│ ├─┬ appium-cookies@1.1.0
│ │ └── babel-runtime@5.8.20
│ ├── appium-instruments@3.6.0
│ ├── appium-ios-log@1.2.0
│ ├─┬ appium-ios-simulator@1.5.2
│ │ ├── lodash@4.5.1
│ │ ├─┬ node-simctl@3.3.1
│ │ │ ├── lodash@4.5.1
│ │ │ └── source-map-support@0.4.0
│ │ ├── semver-compare@1.0.0
│ │ └── source-map-support@0.4.0
│ ├─┬ appium-remote-debugger@2.0.0
│ │ ├── appium-atoms@0.1.0
│ │ ├── bufferpack@0.0.6
│ │ ├── lodash@4.5.1
│ │ ├── source-map-support@0.4.0
│ │ └─┬ ws@1.0.1
│ │ ├── options@0.0.6
│ │ └── ultron@1.0.2
│ ├─┬ appium-uiauto@2.3.1
│ │ └── lodash@4.5.1
│ ├── appium-xcode@3.1.0
│ ├── ios-app-utils@1.1.0
│ ├── js2xmlparser2@0.2.0
│ ├── lodash@4.5.1
│ ├── node-idevice@0.1.5
│ ├─┬ path@0.12.7
│ │ ├── process@0.11.2
│ │ └── util@0.10.3
│ ├── safari-launcher@2.0.5
│ ├── source-map-support@0.4.0
│ ├─┬ url@0.11.0
│ │ ├── punycode@1.3.2
│ │ └── querystring@0.2.0
│ └── xpath@0.0.21
├── appium-logger@2.1.0
├─┬ appium-selendroid-driver@1.2.2
│ ├─┬ appium-jsonwp-proxy@1.5.0
│ │ └── jsonwp-status@0.0.1
│ ├─┬ appium-selendroid-installer@0.2.0
│ │ └── request-promise@0.4.3
│ └── utf7@1.0.0
├─┬ appium-support@2.0.10
│ ├─┬ bplist-creator@0.0.6
│ │ └── stream-buffers@2.2.0
│ ├─┬ bplist-parser@0.1.1
│ │ └── big-integer@1.6.12
│ ├─┬ glob@6.0.4
│ │ ├─┬ inflight@1.0.4
│ │ │ └── wrappy@1.0.1
│ │ ├── inherits@2.0.1
│ │ ├── minimatch@3.0.0
│ │ └── once@1.3.3
│ ├── lodash@4.5.1
│ ├─┬ md5@2.0.0
│ │ ├── charenc@0.0.1
│ │ ├── crypt@0.0.1
│ │ └── is-buffer@1.0.2
│ ├─┬ mkdirp@0.5.1
│ │ └── minimist@0.0.8
│ ├─┬ mv@2.1.1
│ │ └── rimraf@2.4.5
│ ├── ncp@2.0.0
│ ├─┬ plist@1.2.0
│ │ ├── base64-js@0.0.8
│ │ ├── util-deprecate@1.0.2
│ │ └── xmlbuilder@4.0.0
│ ├─┬ rimraf@2.5.2
│ │ └── glob@7.0.0
│ └─┬ which@1.2.4
│ ├─┬ is-absolute@0.1.7
│ │ └── is-relative@0.1.3
│ └── isexe@1.1.2
├─┬ argparse@1.0.6
│ └── sprintf-js@1.0.3
├─┬ asyncbox@2.3.1
│ ├─┬ babel-runtime@5.5.5
│ │ └── core-js@0.9.18
│ ├─┬ chai@3.5.0
│ │ ├── assertion-error@1.0.1
│ │ ├─┬ deep-eql@0.1.3
│ │ │ └── type-detect@0.1.1
│ │ └── type-detect@1.0.0
│ ├── chai-as-promised@5.2.0
│ └─┬ es6-mapify@1.0.0
│ └─┬ traceur@0.0.102
│ ├── commander@2.6.0
│ ├─┬ glob@4.3.5
│ │ └── minimatch@2.0.10
│ ├── rsvp@3.2.1
│ ├── semver@4.3.2
│ └── source-map-support@0.2.10
├─┬ authorize-ios@1.0.4
│ └── glob@5.0.15
├─┬ babel-runtime@5.8.24
│ └── core-js@1.2.6
├── bluebird@2.10.2
├── date-utils@1.2.18
├─┬ fsevents@1.0.8
│ ├── nan@2.2.0
│ └─┬ node-pre-gyp@0.6.21
│ ├─┬ mkdirp@0.5.1
│ │ └── minimist@0.0.8
│ ├─┬ nopt@3.0.6
│ │ └── abbrev@1.0.7
│ ├─┬ npmlog@2.0.2
│ │ ├── ansi@0.3.1
│ │ ├─┬ are-we-there-yet@1.0.6
│ │ │ └── delegates@1.0.0
│ │ └─┬ gauge@1.2.5
│ │ ├── has-unicode@2.0.0
│ │ ├─┬ lodash.pad@3.3.0
│ │ │ ├── lodash._root@3.0.0
│ │ │ └── lodash.repeat@3.2.0
│ │ ├─┬ lodash.padleft@3.1.1
│ │ │ ├── lodash._basetostring@3.0.1
│ │ │ └── lodash._createpadding@3.6.1
│ │ └── lodash.padright@3.1.1
│ ├─┬ rc@1.1.6
│ │ ├── deep-extend@0.4.1
│ │ ├── ini@1.3.4
│ │ ├── minimist@1.2.0
│ │ └── strip-json-comments@1.0.4
│ ├─┬ request@2.69.0
│ │ ├── aws-sign2@0.6.0
│ │ ├─┬ aws4@1.2.1
│ │ │ └── lru-cache@2.7.3
│ │ ├── bl@1.0.2
│ │ ├── caseless@0.11.0
│ │ ├─┬ combined-stream@1.0.5
│ │ │ └── delayed-stream@1.0.0
│ │ ├── extend@3.0.0
│ │ ├── forever-agent@0.6.1
│ │ ├─┬ form-data@1.0.0-rc3
│ │ │ └── async@1.5.2
│ │ ├─┬ har-validator@2.0.6
│ │ │ ├─┬ chalk@1.1.1
│ │ │ │ ├── ansi-styles@2.1.0
│ │ │ │ ├── escape-string-regexp@1.0.4
│ │ │ │ ├─┬ has-ansi@2.0.0
│ │ │ │ │ └── ansi-regex@2.0.0
│ │ │ │ ├── strip-ansi@3.0.0
│ │ │ │ └── supports-color@2.0.0
│ │ │ ├─┬ commander@2.9.0
│ │ │ │ └── graceful-readlink@1.0.1
│ │ │ ├─┬ is-my-json-valid@2.12.4
│ │ │ │ ├── generate-function@2.0.0
│ │ │ │ ├─┬ generate-object-property@1.2.0
│ │ │ │ │ └── is-property@1.0.2
│ │ │ │ ├── jsonpointer@2.0.0
│ │ │ │ └── xtend@4.0.1
│ │ │ └─┬ pinkie-promise@2.0.0
│ │ │ └── pinkie@2.0.4
│ │ ├─┬ hawk@3.1.3
│ │ │ ├── boom@2.10.1
│ │ │ ├── cryptiles@2.0.5
│ │ │ ├── hoek@2.16.3
│ │ │ └── sntp@1.0.9
│ │ ├─┬ http-signature@1.1.1
│ │ │ ├── assert-plus@0.2.0
│ │ │ ├─┬ jsprim@1.2.2
│ │ │ │ ├── extsprintf@1.0.2
│ │ │ │ ├── json-schema@0.2.2
│ │ │ │ └── verror@1.3.6
│ │ │ └─┬ sshpk@1.7.3
│ │ │ ├── asn1@0.2.3
│ │ │ ├── dashdash@1.12.2
│ │ │ ├── ecc-jsbn@0.1.1
│ │ │ ├── jodid25519@1.0.2
│ │ │ ├── jsbn@0.1.0
│ │ │ └── tweetnacl@0.13.3
│ │ ├── is-typedarray@1.0.0
│ │ ├── isstream@0.1.2
│ │ ├── json-stringify-safe@5.0.1
│ │ ├─┬ mime-types@2.1.9
│ │ │ └── mime-db@1.21.0
│ │ ├── node-uuid@1.4.7
│ │ ├── oauth-sign@0.8.1
│ │ ├── qs@6.0.2
│ │ ├── stringstream@0.0.5
│ │ ├── tough-cookie@2.2.1
│ │ └── tunnel-agent@0.4.2
│ ├─┬ rimraf@2.5.1
│ │ └─┬ glob@6.0.4
│ │ ├─┬ inflight@1.0.4
│ │ │ └── wrappy@1.0.1
│ │ ├── inherits@2.0.1
│ │ ├─┬ minimatch@3.0.0
│ │ │ └─┬ brace-expansion@1.1.2
│ │ │ ├── balanced-match@0.3.0
│ │ │ └── concat-map@0.0.1
│ │ ├─┬ once@1.3.3
│ │ │ └── wrappy@1.0.1
│ │ └── path-is-absolute@1.0.0
│ ├── semver@5.1.0
│ ├─┬ tar@2.2.1
│ │ ├── block-stream@0.0.8
│ │ ├─┬ fstream@1.0.8
│ │ │ └── graceful-fs@4.1.3
│ │ └── inherits@2.0.1
│ └─┬ tar-pack@3.1.3
│ ├─┬ debug@2.2.0
│ │ └── ms@0.7.1
│ ├─┬ fstream-ignore@1.0.3
│ │ └─┬ minimatch@3.0.0
│ │ └─┬ brace-expansion@1.1.2
│ │ ├── balanced-match@0.3.0
│ │ └── concat-map@0.0.1
│ ├─┬ once@1.3.3
│ │ └── wrappy@1.0.1
│ ├─┬ readable-stream@2.0.5
│ │ ├── core-util-is@1.0.2
│ │ ├── isarray@0.0.1
│ │ ├── process-nextick-args@1.0.6
│ │ ├── string_decoder@0.10.31
│ │ └── util-deprecate@1.0.2
│ └── uid-number@0.0.6
├── lodash@3.10.1
├─┬ mobile-json-wire-protocol@1.3.2
│ └── es6-error@2.0.2
├─┬ npmlog@2.0.2
│ ├── ansi@0.3.1
│ ├─┬ are-we-there-yet@1.0.6
│ │ ├── delegates@1.0.0
│ │ └─┬ readable-stream@2.0.5
│ │ ├── core-util-is@1.0.2
│ │ ├── isarray@0.0.1
│ │ ├── process-nextick-args@1.0.6
│ │ └── string_decoder@0.10.31
│ └─┬ gauge@1.2.7
│ ├── has-unicode@2.0.0
│ ├─┬ lodash.pad@4.1.0
│ │ ├── lodash.repeat@4.0.0
│ │ └── lodash.tostring@4.1.1
│ ├── lodash.padend@4.2.0
│ └── lodash.padstart@4.2.0
├─┬ request-promise@1.0.2
│ └─┬ cls-bluebird@1.0.1
│ └── shimmer@1.1.0
├─┬ source-map-support@0.3.3
│ └─┬ source-map@0.1.32
│ └── amdefine@1.0.0
├─┬ teen_process@1.5.1
│ ├─┬ shell-quote@1.4.3
│ │ ├── array-filter@0.0.1
│ │ ├── array-map@0.0.0
│ │ ├── array-reduce@0.0.0
│ │ └── jsonify@0.0.0
│ ├── source-map-support@0.2.10
│ └── through@2.3.8
└─┬ winston@1.1.2
├── async@1.0.0
├── colors@1.0.3
├── cycle@1.0.3
├── eyes@0.1.8
├── isstream@0.1.2
├── pkginfo@0.3.1
└── stack-trace@0.0.9