fastlaneって大丈夫なのって聞かれたのでとりあえずパケットキャプチャしてみた

# fastlane

[fastlane](https://github.com/KrauseFx/fastlane)ってすごい便利なんだけど、実際に大丈夫なの？変なとこに通信とかしてない？ってことでちょっと試しにキャプチャしてみる

# 環境を作る
## charles
有名なパケットキャプチャツールのcharlesを入れる
[charls](http://qiita.com/usagimaru/items/d340e87da98e62f99b60)

## fastlaneを入れる
今回はspaceshipだけとりあえずあればいいけど、全部入れちゃう

```
$ sudo gem install fastlane
$ sudo gem install spaceship
```

これだけで入る

## ソースを用意

```
# list.rb
require 'spaceship'

Spaceship.login("XXXXX@gmail.com","XXXX")
Spaceship.select_team

Spaceship.app.all.collect do |app|
      p app.name
end

```

アプリ一覧を出してみる。

```
% ruby list.rb                                                       [16:55:59]
Multiple teams found, please enter the number of the team you want to use:
1) XXXXXX "XXXXX Inc." (Company/Organization)
2) XXXXXX "Kentarou Haneda" (Individual)
2
XXX
XXX
XXX
```

うむ、動く。

## キャプチャ

ターミナルからのリクエストをプロキシするために以下の設定をする

```
HanedaKentarou-no-MacBook-Pro.local ^_^  ~/Documents/workspace/dev/web/fastlane
% export http_proxy="127.0.0.1:8888"                                 [16:55:16]
HanedaKentarou-no-MacBook-Pro.local ^_^  ~/Documents/workspace/dev/web/fastlane
% export https_proxy="127.0.0.1:8888"

```

## 結果

いくらか削除しているけど概ね大丈夫そう、itunesconnectとAppDevの叩いているドメインを使っているので普通に非公開APIを使っているだけのようだ。
インストール時にphantomJSを入れていたので、仮想ブラウザを呼んで中身で叩いているのかもしれない。

```
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE charles-session SYSTEM "http://www.charlesproxy.com/dtd/charles-session-1_0.dtd">

<charles-session>
<transaction status="Complete" method="CONNECT" protocolVersion="HTTP/1.1" protocol="https" host="idmsa.apple.com" actualPort="443" remoteAddress="idmsa.apple.com/17.151.2.14" clientAddress="/127.0.0.1" startTime="2015-09-13T16:56:15.555+09:00" startTimeMillis="1442130975555" dnsDuration="17" connectDuration="117" endTime="2015-09-13T16:56:16.153+09:00" endTimeMillis="1442130976153">
<request headers="67" body="993">
<headers>
<first-line><![CDATA[CONNECT idmsa.apple.com:443 HTTP/1.1]]></first-line>
<header>
<name>Host</name>
<value>idmsa.apple.com:443</value></header></headers>
<body encoding="base64"><![CDATA[さくじょ]]></body></request>
<response status="-1" headers="0" body="7315">
<headers>
<first-line /></headers>
<body encoding="base64"><![CDATA[さくじょ]]></body></response></transaction>
<transaction status="Complete" method="CONNECT" protocolVersion="HTTP/1.1" protocol="https" host="developer.apple.com" actualPort="443" remoteAddress="developer.apple.com/17.146.1.14" clientAddress="/127.0.0.1" startTime="2015-09-13T16:56:16.155+09:00" startTimeMillis="1442130976155" dnsDuration="463" connectDuration="112" endTime="2015-09-13T16:56:17.201+09:00" endTimeMillis="1442130977201">
<request headers="75" body="1259">
<headers>
<first-line><![CDATA[CONNECT developer.apple.com:443 HTTP/1.1]]></first-line>
<header>
<name>Host</name>
<value>developer.apple.com:443</value></header></headers>
<body encoding="base64"><![CDATA[長いので削除]]></body></request>
<response status="-1" headers="0" body="6682">
<headers>
<first-line /></headers>
<body encoding="base64"><![CDATA[さくじょ]]></body></response></transaction>
<transaction status="Complete" method="CONNECT" protocolVersion="HTTP/1.1" protocol="https" host="developer.apple.com" actualPort="443" remoteAddress="developer.apple.com/17.146.1.14" clientAddress="/127.0.0.1" startTime="2015-09-13T16:56:27.038+09:00" startTimeMillis="1442130987038" dnsDuration="1" connectDuration="124" endTime="2015-09-13T16:56:27.580+09:00" endTimeMillis="1442130987580">
<request headers="75" body="1541">
<headers>
<first-line><![CDATA[CONNECT developer.apple.com:443 HTTP/1.1]]></first-line>
<header>
<name>Host</name>
<value>developer.apple.com:443</value></header></headers>
<body encoding="base64"><![CDATA[さくじょ]]></body></request>
<response status="-1" headers="0" body="6933">
<headers>
<first-line /></headers>
<body encoding="base64"><![CDATA[さくじょ]]></body></response></transaction></charles-session>
```

## 結果
https://github.com/KrauseFx/deliver#can-i-trust-deliver

以下で述べているようにパスワードなどはkeychainに入れているだけで、外に出すようなことはないとのこと。そうはいってもコードも見たほうがいいので、次回はコードベースで確認してみる。