ios phoneGap的安装及使用

首先Phonegap是一个利用HTML5去开发App的框架。可以支持移动、PC等移动操作系统,是一个跨平台的应用,比较节省成本,缩短开发时间。性能不如专门的原生的好,做一些简单应用可以使用;

PhoneGap官网:http://phonegap.com

在Mac下安装Phonegap环境需要一些第三方软件。如Git,XCode,Node.js等等。
1.安装Git,可以参考教程如下:

 http://www.git-scm.com/

2.安装Node.js参考如下:

http://nodejs.org/ (如果你安装了旧版本的需要手动安装npm,不过最新版的自带了)

3.进入终端命令行使用npm安装cordova如下,这个过程可能需要等待一下:

$ sudo npm install -g cordova

安装完成之后如下,由于内容太多,做了部分删减:

ChenfydeMBP:~ Chenfy$ npm -v
3.8.9
ChenfydeMBP:~ Chenfy$ sudo npm install -g cordova
Password:
fetchMetadata → network   ▀ ╢███████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
npm WARN deprecated node-uuid@1.4.7: use uuid module instead
/usr/local/bin/cordova -> /usr/local/lib/node_modules/cordova/bin/cordova
/usr/local/lib
└─┬ cordova@6.4.0 
  ├─┬ cordova-common@1.5.1 
  │ ├── ansi@0.3.1 
  │ ├─┬ bplist-parser@0.1.1 
  │ │ └── big-integer@1.6.17 
  │ ├── cordova-registry-mapper@1.1.15 
  │ ├─┬ elementtree@0.1.6 
  │ │ └── sax@0.3.5 
    ├─┬ repeating@1.1.3 
    │ └─┬ is-finite@1.0.2 
    │   └── number-is-nan@1.0.1 
    ├── semver-diff@2.1.0 
    └── string-length@1.0.1 

ChenfydeMBP:~ Chenfy$ 

4、进入你要创建的项目目录,然后创建phonegap项目。

 $ cordova create hello com.example.hello hello

 //输入完这个命令后cordova程序会帮你创建hello文件夹,里面就是这个phonegap环境了。
 //第一个hello 项目的目录名称
 //第二个hello 项目名称

5、创建xcode项目文件,这是在Mac平台开发,每个开发者都应该有自己的Xcode。

$ cd hello
$ cordova platform add ios
//之后你用finder进入子目录就会看到platforms中得ios文件夹,接着你就运行里面项目编译即可。
//这个过程有时也会有些慢,可能需要等待一下;

执行完这些效果如下:

ChenfydeMBP:hello Chenfy$ cordova platform add ios
Adding ios project...
Creating Cordova project for the iOS platform:
    Path: platforms/ios
    Package: com.example.hello
    Name: HelloWorld
iOS project created with cordova-ios@4.3.1
Discovered plugin "cordova-plugin-whitelist" in config.xml. Adding it to the project
Fetching plugin "cordova-plugin-whitelist@1" via npm
Installing "cordova-plugin-whitelist" for ios

hello工程结构图:
ios phoneGap的安装及使用_第1张图片

iOS工程结构图:
ios phoneGap的安装及使用_第2张图片

6、环境有了,接下来先说下如何与系统自身打交道;目前提供的一些功能还是比较有限的,比如摄像头、系统信息、文件操作等等,或者第三方的插件还未知如何集成(后续完成)。
如果要开始开发,需要自己加入一些插件;如果使用PhoneGap客户端的话,创建一个工程,他会帮你引入所有相关的plugin(插件);
ios phoneGap的安装及使用_第3张图片

PhoneGap引入的插件:
ios phoneGap的安装及使用_第4张图片

  • 之前添加插件的方式如下(现在方式已经更改-新的添加方式往下看):
添加插件命令 cordova plugin add *  
  设备信息插件:  
  cordova plugin add org.apache.cordova.device  
  网络连接插件:  
  cordova plugin add org.apache.cordova.network-information  
  cordova plugin add org.apache.cordova.battery-status  
  陀螺仪:  
  cordova plugin add org.apache.cordova.device-motion  
  cordova plugin add org.apache.cordova.device-orientation  
  cordova plugin add org.apache.cordova.geolocation  
  摄像头拍照录制等:  
  cordova plugin add org.apache.cordova.camera  
  cordova plugin add org.apache.cordova.media-capture  
  cordova plugin add org.apache.cordova.media  
  访问文件:  
  cordova plugin add org.apache.cordova.file  
  cordova plugin add org.apache.cordova.file-transfer  
  提醒:  
  cordova plugin add org.apache.cordova.dialogs  
  cordova plugin add org.apache.cordova.vibration  
  联系人:  
  cordova plugin add org.apache.cordova.contacts  
  全球化:  
  cordova plugin add org.apache.cordova.globalization  
  闪屏(启动画面):  
  cordova plugin add org.apache.cordova.splashscreen  
  打开新的浏览器 (InAppBrowser):  
  cordova plugin add org.apache.cordova.inappbrowser  
  调试主控制台:  
  cordova plugin add org.apache.cordova.console
  • 现在添加的方式如下:
//Old method 
cordova plugin add org.chromium.zip

//New method
cordova plugin add cordova-plugin-zip
  • 除了上述的方式外,还可以从远程加载:
##- Try this:
cordova plugin add https://github.com/MobileChromeApps/cordova-plugin-zip.git

##- Or this:
cordova plugin add https://github.com/MobileChromeApps/cordova-plugin-zip

ios phoneGap的安装及使用_第5张图片

cordova的安装效果:

ChenfydeMBP:~ Chenfy$ sudo npm install -g cordova
Password:
fetchMetadata → network   ▀ ╢███████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░╟
npm WARN deprecated node-uuid@1.4.7: use uuid module instead
/usr/local/bin/cordova -> /usr/local/lib/node_modules/cordova/bin/cordova
/usr/local/lib
└─┬ cordova@6.4.0 
  ├─┬ cordova-common@1.5.1 
  │ ├── ansi@0.3.1 
  │ ├─┬ bplist-parser@0.1.1 
  │ │ └── big-integer@1.6.17 
  │ ├── cordova-registry-mapper@1.1.15 
  │ ├─┬ elementtree@0.1.6 
  │ │ └── sax@0.3.5 
  │ ├─┬ glob@5.0.15 
  │ │ ├─┬ inflight@1.0.6 
  │ │ │ └── wrappy@1.0.2 
  │ │ ├── inherits@2.0.3 
  │ │ ├── once@1.4.0 
  │ │ └── path-is-absolute@1.0.1 
  │ ├─┬ minimatch@3.0.3 
  │ │ └─┬ brace-expansion@1.1.6 
  │ │   ├── balanced-match@0.4.2 
-map@0.0.1 
  │ ├─┬ osenv@0.1.4 
  │ │ ├── os-homedir@1.0.2 
  │ │ └── os-tmpdir@1.0.2 
  │ ├─┬ plist@1.2.0 
  │ │ ├── base64-js@0.0.8 
  │ │ ├── util-deprecate@1.0.2 
  │ │ ├── xmlbuilder@4.0.0 
  │ │ └── xmldom@0.1.27 
  │ ├── q@1.4.1 
  │ ├── semver@5.3.0 
  │ ├── shelljs@0.5.3 
  │ ├── underscore@1.8.3 
  │ └── unorm@1.4.1 
  ├─┬ cordova-lib@6.4.0 
  │ ├─┬ aliasify@1.9.0 
  │ │ └─┬ browserify-transform-tools@1.5.3 
  │ │   └─┬ falafel@1.2.0 
  │ │     ├── acorn@1.2.2 
  │ │     ├── foreach@2.0.5 
  │ │     ├── isarray@0.0.1 
  │ │     └── object-keys@1.0.11 
  │ ├─┬ cordova-create@1.0.1 
  │ │ ├── cordova-app-hello-world@3.11.0 
  │ │ └── shelljs@0.3.0 
  │ ├─┬ cordova-fetch@1.0.1 
  │ │ ├─┬ dependency-ls@1.0.0 
  │ │ │ └── q@1.4.1 
  │ │ ├── is-url@1.2.2 
  │ │ ├── q@1.4.1 
  │ │ └─┬ shelljs@0.7.5 
  │ │   ├─┬ glob@7.1.1 
  │ │   │ └── fs.realpath@1.0.0 
  │ │   ├── interpret@1.0.1 
  │ │   └── rechoir@0.6.2 
  │ ├─┬ cordova-js@4.2.0 
  │ │ └─┬ browserify@13.1.0 
  │ │   ├── assert@1.3.0 
  │ │   ├─┬ browser-pack@6.0.2 
  │ │   │ ├─┬ combine-source-map@0.7.2 
  │ │   │ │ ├── convert-source-map@1.1.3 
  │ │   │ │ ├── inline-source-map@0.6.2 
  │ │   │ │ ├── lodash.memoize@3.0.4 
  │ │   │ │ └── source-map@0.5.6 
  │ │   │ └── umd@3.0.1 
  │ │   ├─┬ browser-resolve@1.11.2 
  │ │   │ └── resolve@1.1.7 
  │ │   ├─┬ browserify-zlib@0.1.4 
  │ │   │ └── pako@0.2.9 
  │ │   ├─┬ buffer@4.9.1 
  │ │   │ ├── base64-js@1.2.0 
  │ │   │ ├── ieee754@1.1.8 
  │ │   │ └── isarray@1.0.0 
  │ │   ├─┬ concat-stream@1.5.2 
  │ │   │ ├─┬ readable-stream@2.0.6 
  │ │   │ │ └── isarray@1.0.0 
  │ │   │ └── typedarray@0.0.6 
  │ │   ├─┬ console-browserify@1.1.0 
  │ │   │ └── date-now@0.1.4 
  │ │   ├── constants-browserify@1.0.0 
  │ │   ├─┬ crypto-browserify@3.11.0 
  │ │   │ ├─┬ browserify-cipher@1.0.0 
  │ │   │ │ ├─┬ browserify-aes@1.0.6 
  │ │   │ │ │ └── buffer-xor@1.0.3 
  │ │   │ │ ├─┬ browserify-des@1.0.0 
  │ │   │ │ │ └─┬ des.js@1.0.0 
  │ │   │ │ │   └── minimalistic-assert@1.0.0 
  │ │   │ │ └── evp_bytestokey@1.0.0 
  │ │   │ ├─┬ browserify-sign@4.0.0 
  │ │   │ │ ├── bn.js@4.11.6 
  │ │   │ │ ├── browserify-rsa@4.0.1 
  │ │   │ │ ├─┬ elliptic@6.3.2 
  │ │   │ │ │ ├── brorand@1.0.6 
  │ │   │ │ │ └── hash.js@1.0.3 
  │ │   │ │ └─┬ parse-asn1@5.0.0 
  │ │   │ │   └── asn1.js@4.9.0 
  │ │   │ ├── create-ecdh@4.0.0 
  │ │   │ ├─┬ create-hash@1.1.2 
  │ │   │ │ ├── cipher-base@1.0.3 
  │ │   │ │ └── ripemd160@1.0.1 
  │ │   │ ├── create-hmac@1.1.4 
  │ │   │ ├─┬ diffie-hellman@5.0.2 
  │ │   │ │ └── miller-rabin@4.0.0 
  │ │   │ ├── pbkdf2@3.0.9 
  │ │   │ ├── public-encrypt@4.0.0 
  │ │   │ └── randombytes@2.0.3 
  │ │   ├── defined@1.0.0 
  │ │   ├── deps-sort@2.0.0 
  │ │   ├── domain-browser@1.1.7 
  │ │   ├── duplexer2@0.1.4 
  │ │   ├── events@1.1.1 
  │ │   ├─┬ has@1.0.1 
  │ │   │ └── function-bind@1.1.0 
  │ │   ├── htmlescape@1.1.1 
  │ │   ├── https-browserify@0.0.1 
  │ │   ├─┬ insert-module-globals@7.0.1 
  │ │   │ ├── is-buffer@1.1.4 
  │ │   │ └─┬ lexical-scope@1.2.0 
  │ │   │   └── astw@2.0.0 
  │ │   ├─┬ JSONStream@1.3.0 
  │ │   │ └── jsonparse@1.2.0 
  │ │   ├─┬ labeled-stream-splicer@2.0.0 
  │ │   │ └── stream-splicer@2.0.0 
  │ │   ├─┬ module-deps@4.0.8 
  │ │   │ ├── cached-path-relative@1.0.0 
  │ │   │ ├─┬ detective@4.3.2 
  │ │   │ │ └── acorn@3.3.0 
  │ │   │ └── stream-combiner2@1.1.1 
  │ │   ├── os-browserify@0.1.2 
  │ │   ├─┬ parents@1.0.1 
  │ │   │ └── path-platform@0.11.15 
  │ │   ├── path-browserify@0.0.0 
  │ │   ├── process@0.11.9 
  │ │   ├── querystring-es3@0.2.1 
  │ │   ├── read-only-stream@2.0.0 
  │ │   ├─┬ readable-stream@2.2.2 
  │ │   │ ├── buffer-shims@1.0.0 
  │ │   │ ├── core-util-is@1.0.2 
  │ │   │ ├── isarray@1.0.0 
  │ │   │ └── process-nextick-args@1.0.7 
  │ │   ├── resolve@1.2.0 
  │ │   ├─┬ shasum@1.0.2 
  │ │   │ ├── json-stable-stringify@0.0.1 
  │ │   │ └── sha.js@2.4.8 
  │ │   ├─┬ shell-quote@1.6.1 
  │ │   │ ├── array-filter@0.0.1 
  │ │   │ ├── array-map@0.0.0 
  │ │   │ ├── array-reduce@0.0.0 
  │ │   │ └── jsonify@0.0.0 
  │ │   ├── stream-browserify@2.0.1 
  │ │   ├─┬ stream-http@2.5.0 
  │ │   │ ├── builtin-status-codes@2.0.0 
  │ │   │ └── to-arraybuffer@1.0.1 
  │ │   ├── string_decoder@0.10.31 
  │ │   ├── subarg@1.0.0 
  │ │   ├─┬ syntax-error@1.1.6 
  │ │   │ └── acorn@2.7.0 
  │ │   ├── through2@2.0.3 
  │ │   ├── timers-browserify@1.4.2 
  │ │   ├── tty-browserify@0.0.0 
  │ │   ├─┬ url@0.11.0 
  │ │   │ ├── punycode@1.3.2 
  │ │   │ └── querystring@0.2.0 
  │ │   ├─┬ util@0.10.3 
  │ │   │ └── inherits@2.0.1 
  │ │   ├─┬ vm-browserify@0.0.4 
  │ │   │ └── indexof@0.0.1 
  │ │   └── xtend@4.0.1 
  │ ├─┬ cordova-serve@1.0.0 
  │ │ ├─┬ compression@1.6.2 
  │ │ │ ├─┬ accepts@1.3.3 
  │ │ │ │ └── negotiator@0.6.1 
  │ │ │ ├── bytes@2.3.0 
  │ │ │ ├── compressible@2.0.9 
  │ │ │ ├─┬ debug@2.2.0 
  │ │ │ │ └── ms@0.7.1 
  │ │ │ ├── on-headers@1.0.1 
  │ │ │ └── vary@1.1.0 
  │ │ ├─┬ express@4.14.0 
  │ │ │ ├── array-flatten@1.1.1 
  │ │ │ ├── content-disposition@0.5.1 
  │ │ │ ├── content-type@1.0.2 
  │ │ │ ├── cookie@0.3.1 
  │ │ │ ├── cookie-signature@1.0.6 
  │ │ │ ├── depd@1.1.0 
  │ │ │ ├── encodeurl@1.0.1 
  │ │ │ ├── escape-html@1.0.3 
  │ │ │ ├── etag@1.7.0 
  │ │ │ ├─┬ finalhandler@0.5.0 
  │ │ │ │ ├── statuses@1.3.1 
  │ │ │ │ └── unpipe@1.0.0 
  │ │ │ ├── fresh@0.3.0 
  │ │ │ ├── merge-descriptors@1.0.1 
  │ │ │ ├── methods@1.1.2 
  │ │ │ ├─┬ on-finished@2.3.0 
  │ │ │ │ └── ee-first@1.1.1 
  │ │ │ ├── parseurl@1.3.1 
  │ │ │ ├── path-to-regexp@0.1.7 
  │ │ │ ├─┬ proxy-addr@1.1.2 
  │ │ │ │ ├── forwarded@0.1.0 
  │ │ │ │ └── ipaddr.js@1.1.1 
  │ │ │ ├── qs@6.2.0 
  │ │ │ ├── range-parser@1.2.0 
  │ │ │ ├─┬ send@0.14.1 
  │ │ │ │ ├── destroy@1.0.4 
  │ │ │ │ ├─┬ http-errors@1.5.1 
  │ │ │ │ │ └── setprototypeof@1.0.2 
  │ │ │ │ └── mime@1.3.4 
  │ │ │ ├── serve-static@1.11.1 
  │ │ │ ├─┬ type-is@1.6.14 
  │ │ │ │ └── media-typer@0.3.0 
  │ │ │ └── utils-merge@1.0.0 
  │ │ └── q@1.4.1 
  │ ├─┬ dep-graph@1.1.0 
  │ │ └── underscore@1.2.1 
  │ ├─┬ init-package-json@1.9.4 
  │ │ ├── glob@6.0.4 
  │ │ ├─┬ npm-package-arg@4.2.0 
  │ │ │ └── hosted-git-info@2.1.5 
  │ │ ├── promzard@0.3.0 
  │ │ ├─┬ read@1.0.7 
  │ │ │ └── mute-stream@0.0.6 
  │ │ ├─┬ read-package-json@2.0.4 
  │ │ │ ├── glob@6.0.4 
  │ │ │ ├─┬ json-parse-helpfulerror@1.0.3 
  │ │ │ │ └── jju@1.3.0 
  │ │ │ └─┬ normalize-package-data@2.3.5 
  │ │ │   └─┬ is-builtin-module@1.0.0 
  │ │ │     └── builtin-modules@1.1.1 
  │ │ ├─┬ validate-npm-package-license@3.0.1 
  │ │ │ ├─┬ spdx-correct@1.0.2 
  │ │ │ │ └── spdx-license-ids@1.2.2 
  │ │ │ └── spdx-expression-parse@1.0.4 
  │ │ └─┬ validate-npm-package-name@2.2.2 
  │ │   └── builtins@0.0.7 
  │ ├── nopt@3.0.6 
  │ ├─┬ npm@2.15.11 
  │ │ ├── abbrev@1.0.9 
  │ │ ├── ansi@0.3.1 
  │ │ ├── ansi-regex@2.0.0 
  │ │ ├── ansicolors@0.3.2 
  │ │ ├── ansistyles@0.1.3 
  │ │ ├── archy@1.0.0 
  │ │ ├── async-some@1.0.2 
  │ │ ├── block-stream@0.0.9 
  │ │ ├── char-spinner@1.0.1 
  │ │ ├── chmodr@1.0.2 
  │ │ ├── chownr@1.0.1 
  │ │ ├── cmd-shim@2.0.2 
  │ │ ├─┬ columnify@1.5.4 
  │ │ │ └─┬ wcwidth@1.0.0 
  │ │ │   └─┬ defaults@1.0.3 
  │ │ │     └── clone@1.0.2 
  │ │ ├─┬ config-chain@1.1.10 
  │ │ │ └── proto-list@1.2.4 
  │ │ ├─┬ dezalgo@1.0.3 
  │ │ │ └── asap@2.0.3 
  │ │ ├── editor@1.0.0 
  │ │ ├── fs-vacuum@1.2.9 
  │ │ ├─┬ fs-write-stream-atomic@1.0.8 
  │ │ │ └── iferr@0.1.5 
  │ │ ├── fstream@1.0.10 
  │ │ ├─┬ fstream-npm@1.1.1 
  │ │ │ └── fstream-ignore@1.0.5 
  │ │ ├── github-url-from-git@1.4.0 
  │ │ ├── github-url-from-username-repo@1.0.2 
  │ │ ├─┬ glob@7.0.6 
  │ │ │ ├── fs.realpath@1.0.0 
  │ │ │ └── path-is-absolute@1.0.0 
  │ │ ├── graceful-fs@4.1.6 
  │ │ ├── hosted-git-info@2.1.5 
  │ │ ├── imurmurhash@0.1.4 
  │ │ ├── inflight@1.0.5 
  │ │ ├── inherits@2.0.3 
  │ │ ├── ini@1.3.4 
  │ │ ├─┬ init-package-json@1.9.4 
  │ │ │ ├─┬ glob@6.0.4 
  │ │ │ │ └── path-is-absolute@1.0.0 
  │ │ │ └── promzard@0.3.0 
  │ │ ├── lockfile@1.0.1 
  │ │ ├─┬ lru-cache@4.0.1 
  │ │ │ ├── pseudomap@1.0.2 
  │ │ │ └── yallist@2.0.0 
  │ │ ├─┬ minimatch@3.0.3 
  │ │ │ └─┬ brace-expansion@1.1.6 
  │ │ │   ├── balanced-match@0.4.2 
  │ │ │   └── concat-map@0.0.1 
  │ │ ├─┬ mkdirp@0.5.1 
  │ │ │ └── minimist@0.0.8 
  │ │ ├─┬ node-gyp@3.4.0 
  │ │ │ └─┬ path-array@1.0.1 
  │ │ │   └─┬ array-index@1.0.0 
  │ │ │     ├─┬ debug@2.2.0 
  │ │ │     │ └── ms@0.7.1 
  │ │ │     └─┬ es6-symbol@3.1.0 
  │ │ │       ├── d@0.1.1 
  │ │ │       └─┬ es5-ext@0.10.12 
  │ │ │         └── es6-iterator@2.0.0 
  │ │ ├── nopt@3.0.6 
  │ │ ├── normalize-git-url@3.0.2 
  │ │ ├─┬ normalize-package-data@2.3.5 
  │ │ │ └─┬ is-builtin-module@1.0.0 
  │ │ │   └── builtin-modules@1.1.0 
  │ │ ├── npm-cache-filename@1.0.2 
  │ │ ├── npm-install-checks@1.0.7 
  │ │ ├── npm-package-arg@4.1.0 
  │ │ ├─┬ npm-registry-client@7.2.1 
  │ │ │ ├─┬ concat-stream@1.5.2 
  │ │ │ │ ├─┬ readable-stream@2.0.6 
  │ │ │ │ │ ├── core-util-is@1.0.2 
  │ │ │ │ │ ├── isarray@1.0.0 
  │ │ │ │ │ ├── process-nextick-args@1.0.7 
  │ │ │ │ │ ├── string_decoder@0.10.31 
  │ │ │ │ │ └── util-deprecate@1.0.2 
  │ │ │ │ └── typedarray@0.0.6 
  │ │ │ └── retry@0.10.0 
  │ │ ├── npm-user-validate@0.1.5 
  │ │ ├─┬ npmlog@2.0.4 
  │ │ │ ├─┬ are-we-there-yet@1.1.2 
  │ │ │ │ └── delegates@1.0.0 
  │ │ │ └─┬ gauge@1.2.7 
  │ │ │   ├── has-unicode@2.0.0 
  │ │ │   ├─┬ lodash.pad@4.4.0 
  │ │ │   │ ├── lodash._baseslice@4.0.0 
  │ │ │   │ ├── lodash._basetostring@4.12.0 
  │ │ │   │ └── lodash.tostring@4.1.4 
  │ │ │   ├── lodash.padend@4.5.0 
  │ │ │   └── lodash.padstart@4.5.0 
  │ │ ├── once@1.4.0 
  │ │ ├── opener@1.4.1 
  │ │ ├─┬ osenv@0.1.3 
  │ │ │ ├── os-homedir@1.0.0 
  │ │ │ └── os-tmpdir@1.0.1 
  │ │ ├── path-is-inside@1.0.1 
  │ │ ├─┬ read@1.0.7 
  │ │ │ └── mute-stream@0.0.5 
  │ │ ├─┬ read-installed@4.0.3 
  │ │ │ ├── debuglog@1.0.1 
  │ │ │ ├── readdir-scoped-modules@1.0.2 
  │ │ │ └── util-extend@1.0.1 
  │ │ ├─┬ read-package-json@2.0.4 
  │ │ │ ├─┬ glob@6.0.4 
  │ │ │ │ └── path-is-absolute@1.0.0 
  │ │ │ └─┬ json-parse-helpfulerror@1.0.3 
  │ │ │   └── jju@1.3.0 
  │ │ ├─┬ readable-stream@2.1.5 
  │ │ │ ├── buffer-shims@1.0.0 
  │ │ │ ├── core-util-is@1.0.2 
  │ │ │ ├── isarray@1.0.0 
  │ │ │ ├── process-nextick-args@1.0.7 
  │ │ │ ├── string_decoder@0.10.31 
  │ │ │ └── util-deprecate@1.0.2 
  │ │ ├── realize-package-specifier@3.0.1 
  │ │ ├─┬ request@2.74.0 
  │ │ │ ├── aws-sign2@0.6.0 
  │ │ │ ├── aws4@1.4.1 
  │ │ │ ├─┬ bl@1.1.2 
  │ │ │ │ └─┬ readable-stream@2.0.6 
  │ │ │ │   ├── core-util-is@1.0.2 
  │ │ │ │   ├── isarray@1.0.0 
  │ │ │ │   ├── process-nextick-args@1.0.7 
  │ │ │ │   ├── string_decoder@0.10.31 
  │ │ │ │   └── util-deprecate@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-rc4 
  │ │ │ │ └── async@1.5.2 
  │ │ │ ├─┬ har-validator@2.0.6 
  │ │ │ │ ├─┬ chalk@1.1.3 
  │ │ │ │ │ ├── ansi-styles@2.2.1 
  │ │ │ │ │ ├── escape-string-regexp@1.0.5 
  │ │ │ │ │ ├── has-ansi@2.0.0 
  │ │ │ │ │ └── supports-color@2.0.0 
  │ │ │ │ ├─┬ 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 
  │ │ │ │ │ └── xtend@4.0.1 
  │ │ │ │ └─┬ pinkie-promise@2.0.1 
  │ │ │ │   └── 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.3.0 
  │ │ │ │ │ ├── extsprintf@1.0.2 
  │ │ │ │ │ ├── json-schema@0.2.2 
  │ │ │ │ │ └── verror@1.3.6 
  │ │ │ │ └─┬ sshpk@1.9.2 
  │ │ │ │   ├── asn1@0.2.3 
  │ │ │ │   ├── assert-plus@1.0.0 
  │ │ │ │   ├── dashdash@1.14.0 
  │ │ │ │   ├── ecc-jsbn@0.1.1 
  │ │ │ │   ├── getpass@0.1.6 
  │ │ │ │   ├── 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.11 
  │ │ │ │ └── mime-db@1.23.0 
  │ │ │ ├── node-uuid@1.4.7 
  │ │ │ ├── oauth-sign@0.8.2 
  │ │ │ ├── qs@6.2.1 
  │ │ │ ├── stringstream@0.0.5 
  │ │ │ ├── tough-cookie@2.3.1 
  │ │ │ └── tunnel-agent@0.4.3 
  │ │ ├── retry@0.10.0 
  │ │ ├── rimraf@2.5.4 
  │ │ ├── semver@5.1.0 
  │ │ ├─┬ sha@2.0.1 
  │ │ │ └─┬ readable-stream@2.0.2 
  │ │ │   ├── core-util-is@1.0.1 
  │ │ │   ├── isarray@0.0.1 
  │ │ │   ├── process-nextick-args@1.0.3 
  │ │ │   ├── string_decoder@0.10.31 
  │ │ │   └── util-deprecate@1.0.1 
  │ │ ├── slide@1.1.6 
  │ │ ├── sorted-object@2.0.0 
  │ │ ├── spdx-license-ids@1.2.2 
  │ │ ├── strip-ansi@3.0.1 
  │ │ ├── tar@2.2.1 
  │ │ ├── text-table@0.2.0 
  │ │ ├── uid-number@0.0.6 
  │ │ ├── umask@1.1.0 
  │ │ ├─┬ validate-npm-package-license@3.0.1 
  │ │ │ ├── spdx-correct@1.0.2 
  │ │ │ └─┬ spdx-expression-parse@1.0.2 
  │ │ │   └── spdx-exceptions@1.0.4 
  │ │ ├─┬ validate-npm-package-name@2.2.2 
  │ │ │ └── builtins@0.0.7 
  │ │ ├─┬ which@1.2.11 
  │ │ │ └── isexe@1.1.2 
  │ │ ├── wrappy@1.0.2 
  │ │ └── write-file-atomic@1.1.4 
  │ ├── opener@1.4.1 
  │ ├── properties-parser@0.2.3 
  │ ├─┬ request@2.47.0 
  │ │ ├── aws-sign2@0.5.0 
  │ │ ├─┬ bl@0.9.5 
  │ │ │ └── readable-stream@1.0.34 
  │ │ ├── caseless@0.6.0 
  │ │ ├─┬ combined-stream@0.0.7 
  │ │ │ └── delayed-stream@0.0.5 
  │ │ ├── forever-agent@0.5.2 
  │ │ ├─┬ form-data@0.1.4 
  │ │ │ ├── async@0.9.2 
  │ │ │ └── mime@1.2.11 
  │ │ ├─┬ hawk@1.1.1 
  │ │ │ ├── boom@0.4.2 
  │ │ │ ├── cryptiles@0.2.2 
  │ │ │ ├── hoek@0.9.1 
  │ │ │ └── sntp@0.2.4 
  │ │ ├─┬ http-signature@0.10.1 
  │ │ │ ├── asn1@0.1.11 
  │ │ │ ├── assert-plus@0.1.5 
  │ │ │ └── ctype@0.5.3 
  │ │ ├── json-stringify-safe@5.0.1 
  │ │ ├── mime-types@1.0.2 
  │ │ ├── node-uuid@1.4.7 
  │ │ ├── oauth-sign@0.4.0 
  │ │ ├── qs@2.3.3 
  │ │ ├── stringstream@0.0.5 
  │ │ └── tunnel-agent@0.4.3 
  │ ├── semver@4.3.6 
  │ ├── shelljs@0.3.0 
  │ ├─┬ tar@1.0.2 
  │ │ ├── block-stream@0.0.9 
  │ │ └─┬ fstream@1.0.10 
  │ │   └─┬ rimraf@2.5.4 
  │ │     └── glob@7.1.1 
  │ ├── unorm@1.3.3 
  │ ├── valid-identifier@0.0.1 
  │ └─┬ xcode@0.8.9 
  │   ├── pegjs@0.9.0 
  │   └─┬ simple-plist@0.1.4 
  │     ├─┬ bplist-creator@0.0.4 
  │     │ └── stream-buffers@0.2.6 
  │     └── bplist-parser@0.0.6 
  ├─┬ insight@0.8.4 
  │ ├── async@1.5.2 
  │ ├─┬ chalk@1.1.3 
  │ │ ├── ansi-styles@2.2.1 
  │ │ ├── escape-string-regexp@1.0.5 
  │ │ ├── has-ansi@2.0.0 
  │ │ ├── strip-ansi@3.0.1 
  │ │ └── supports-color@2.0.0 
  │ ├─┬ configstore@1.4.0 
  │ │ ├── graceful-fs@4.1.11 
  │ │ ├─┬ mkdirp@0.5.1 
  │ │ │ └── minimist@0.0.8 
  │ │ ├── uuid@2.0.3 
  │ │ ├─┬ write-file-atomic@1.2.0 
  │ │ │ ├── imurmurhash@0.1.4 
  │ │ │ └── slide@1.1.6 
  │ │ └── xdg-basedir@2.0.0 
  │ ├─┬ inquirer@0.10.1 
  │ │ ├── ansi-escapes@1.4.0 
  │ │ ├── ansi-regex@2.0.0 
  │ │ ├─┬ cli-cursor@1.0.2 
  │ │ │ └─┬ restore-cursor@1.0.1 
  │ │ │   ├── exit-hook@1.1.1 
  │ │ │   └── onetime@1.1.0 
  │ │ ├── cli-width@1.1.1 
  │ │ ├── figures@1.7.0 
  │ │ ├── lodash@3.10.1 
  │ │ ├─┬ readline2@1.0.1 
  │ │ │ ├── code-point-at@1.1.0 
  │ │ │ ├── is-fullwidth-code-point@1.0.0 
  │ │ │ └── mute-stream@0.0.5 
  │ │ ├── run-async@0.1.0 
  │ │ ├── rx-lite@3.1.2 
  │ │ └── through@2.3.8 
  │ ├─┬ lodash.debounce@3.1.1 
  │ │ └── lodash._getnative@3.9.1 
  │ ├── object-assign@4.1.0 
  │ ├─┬ os-name@1.0.3 
  │ │ ├─┬ osx-release@1.1.0 
  │ │ │ └── minimist@1.2.0 
  │ │ └── win-release@1.1.1 
  │ ├─┬ request@2.79.0 
  │ │ ├── aws-sign2@0.6.0 
  │ │ ├── aws4@1.5.0 
  │ │ ├── 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@2.1.2 
  │ │ │ └── asynckit@0.4.0 
  │ │ ├─┬ har-validator@2.0.6 
  │ │ │ ├─┬ commander@2.9.0 
  │ │ │ │ └── graceful-readlink@1.0.1 
  │ │ │ ├─┬ is-my-json-valid@2.15.0 
  │ │ │ │ ├── generate-function@2.0.0 
  │ │ │ │ ├─┬ generate-object-property@1.2.0 
  │ │ │ │ │ └── is-property@1.0.2 
  │ │ │ │ └── jsonpointer@4.0.0 
  │ │ │ └─┬ pinkie-promise@2.0.1 
  │ │ │   └── 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.3.1 
  │ │ │ │ ├── extsprintf@1.0.2 
  │ │ │ │ ├── json-schema@0.2.3 
  │ │ │ │ └── verror@1.3.6 
  │ │ │ └─┬ sshpk@1.10.1 
  │ │ │   ├── asn1@0.2.3 
  │ │ │   ├── assert-plus@1.0.0 
  │ │ │   ├── bcrypt-pbkdf@1.0.0 
  │ │ │   ├─┬ dashdash@1.14.1 
  │ │ │   │ └── assert-plus@1.0.0 
  │ │ │   ├── ecc-jsbn@0.1.1 
  │ │ │   ├─┬ getpass@0.1.6 
  │ │ │   │ └── assert-plus@1.0.0 
  │ │ │   ├── jodid25519@1.0.2 
  │ │ │   ├── jsbn@0.1.0 
  │ │ │   └── tweetnacl@0.14.5 
  │ │ ├── is-typedarray@1.0.0 
  │ │ ├── isstream@0.1.2 
  │ │ ├─┬ mime-types@2.1.13 
  │ │ │ └── mime-db@1.25.0 
  │ │ ├── oauth-sign@0.8.2 
  │ │ └── qs@6.3.0 
  │ ├─┬ tough-cookie@2.3.2 
  │ │ └── punycode@1.4.1 
  │ └── uuid@3.0.1 
  ├─┬ nopt@3.0.1 
  │ └── abbrev@1.0.9 
  ├── q@1.0.1 
  ├── underscore@1.7.0 
  └─┬ update-notifier@0.5.0 
    ├── is-npm@1.0.0 
    ├─┬ latest-version@1.0.1 
    │ └─┬ package-json@1.2.0 
    │   ├─┬ got@3.3.1 
    │   │ ├─┬ duplexify@3.5.0 
    │   │ │ ├─┬ end-of-stream@1.0.0 
    │   │ │ │ └── once@1.3.3 
    │   │ │ └── stream-shift@1.0.0 
    │   │ ├── infinity-agent@2.0.3 
    │   │ ├── is-redirect@1.0.0 
    │   │ ├── is-stream@1.1.0 
    │   │ ├── lowercase-keys@1.0.0 
    │   │ ├── nested-error-stacks@1.0.2 
    │   │ ├── object-assign@3.0.0 
    │   │ ├── prepend-http@1.0.4 
    │   │ ├── read-all-stream@3.1.0 
    │   │ └── timed-out@2.0.0 
    │   └─┬ registry-url@3.1.0 
    │     └─┬ rc@1.1.6 
    │       ├── deep-extend@0.4.1 
    │       ├── ini@1.3.4 
    │       └── strip-json-comments@1.0.4 
    ├─┬ repeating@1.1.3 
    │ └─┬ is-finite@1.0.2 
    │   └── number-is-nan@1.0.1 
    ├── semver-diff@2.1.0 
    └── string-length@1.0.1 

ChenfydeMBP:~ Chenfy$ 
ChenfydeMBP:~ Chenfy$ 

你可能感兴趣的:(iOS,常用相关功能,Mac,Xcode配置)