fastlane
fastlaneってすごい便利なんだけど、実際に大丈夫なの?変なとこに通信とかしてない?ってことでちょっと試しにキャプチャしてみる
環境を作る
charles
有名なパケットキャプチャツールのcharlesを入れる
charls
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>
結果
以下で述べているようにパスワードなどはkeychainに入れているだけで、外に出すようなことはないとのこと。そうはいってもコードも見たほうがいいので、次回はコードベースで確認してみる。