AppStoreのアプリ(ipaファイル)はアカウントひも付けなため、事前に自分でバックアップしていなければダウングレードを行うことは出来ず、最新版でバグに遭遇…なんて時に…まぁ大変!
というのが周知の事実だったわけですが、ヒラクちゃんが「アプリの過去バージョンをダウンロードする方法」を紹介してくれて…ビックリ!
もやしさんもMac版での方法を紹介してくれていたので、どうせなら…ということで、今回はWindowsで過去バージョンをダウンロードする方法を試してみました!
なるべく細かく…と思って画像数を多くしたため、複雑に見えるのですが…1度成功してしまえばそれほど難しくはないので、暇な時にでも挑戦してみると楽しいかも!
AppStoreで昔のバージョンを…
通常AppStoreからは最新版しかダウンロード出来ないのですが、ヒラクちゃんが教えてくれた方法を使用すると、過去にリリースされた好きなバージョンをAppStoreからダウンロードすることが可能!
例えば、2011年6月にリリースされたLINEの初期バージョン…LINE v1.0.0なんかもダウンロードが出来ちゃう!レアだね!
注意
今回の手法は通信の一部を書き換えることで実現しています。やっていること、やろうとしていること、を理解したうえで実行をしてください。
① 必要な物をインストール(初回のみ
通信の解析&書き換えを行うために、Windowsでは【Fiddler】というソフト(無料)を使用します。
インストールと、ちょっとした準備が必要ですので、まずはそれをやっていきましょう。
1-1, ダウンロード
【http://www.telerik.com/download/fiddler】よりFiddlerをダウンロードします。
Windows 8 / 10の方は【Fiddler for .NET4】を選択、それ以外の方は【Fiddler for .NET2】を選択し、『Download Fiddler』ボタンからダウンロードを行いましょう。(その他選択肢や入力欄はスルーでオーケー)
1-2, インストール
ダウンロードしたexeファイルを起動し、Fiddlerをインストールしていきます。
特に変わった部分はありませんので、『I Agree』や『Install』といったボタンを押して進めていけば完了です。
1-3, 設定
Fiddlerを起動し、メニューバーから『Tools > Fiddler Options...』と選択してください。
続いて【HTTPS】タブを開き、『Capture HTTPS CONNECTs』と『Decrypt HTTPS traffic』の2つにチェックを付けましょう。
その際、鍵のアイコンが付いた選択肢が出現しますが、「No」を選択してください(次項で解説)
通信の解析で詰まった時は…
環境により、以下の作業を行う際…うまく通信の解析や書き換えが出来ない場合があり、その際は【証明書】をインストールすることで改善する事があります。
インストールを行うには、前項の『Capture HTTPS CONNECTs』の右側にある【Actions > Trust Root Certificate】をクリックすることで、インストールが出来ます。
出現したポップアップの『Yes』ボタンを選択、他にも【セキュリティ警告】など2つほど選択肢が出現しますが、どちらも『はい』でインストールとなります。
ちなみに…
【ルート証明書】については、きちんと理解したうえでインストールを行ってください。
また、インストールした証明書は「ファイル名を指定して実行(Windowsキー + R)」から【certmgr.msc】を起動し、アンインストールすることが可能です。
② アプリのバージョンIDを調べる(アプリごとに)
過去バージョンのアプリをダウンロードするには、そのバージョンのIDを調べる必要があります。
こちらは一度調べてしまえば、そのアプリの全バージョンIDが取得できますので、IDを全部メモしておくと便利です。
*今回は例として『LINE v1.0.0(一番最初のバージョン』をダウンロードしてみます。
2-1, アプリをダウンロード&即停止
*既に目的のアプリがダウンロード済みの場合は、iTunesのアプリ一覧から削除しておいてください*
Fiddlerを起動している状態で、iTunesより目的のアプリのダウンロードを開始させます。
ちなみに、アプリの詳細ページを開いておくと、アプリ名部分をクリックするだけでページの再読み込みが出来るため、今後の作業が楽になります。
目的のアプリがダウンロードのキューに登録されたのを確認したら、ダウンロードが完了する前に「停止&削除」を行います。(理由は、ダウンロードされてしまうとアプリファイルを削除しなければならず、ちょっと面倒だから)
キューを選択して『Deleteキーを2回』押せば、停止 > 削除となります。
もしダウンロードが完了してしまった場合は、iTunesのアプリ一覧からファイルごと削除しちゃってください。
2-2, 通信先を探す
Fiddlerの左側にズラッと通信履歴が並んでいますので、その中から【p××-buy.itunes.apple.com(××は数字】という通信先を探し選択しましょう。
いっぱいあってわからない場合は、【Ctrl + Fキー】で検索窓を出し【buy.itunes.apple.com】で検索すると見つかると思います。
2-3, バージョンID一覧をゲット!
続いてFiddlerの右側に移ります。
上部の『Inspectors』を選択した状態で、下に表示されている『Responseis encoded and may require...』という黄色い部分をクリックしましょう。
そのまま右下の画面へ移動…。
【Raw】タブを選択すると、ズラッとXML文が表示されていますが、この中から【softwareVersionExternalIdentifiers】というKey(キー)部分を探してください。
その下に「integer」というタグで囲まれた数字がずらっとあるのですが、これが目的のバージョンIDとなります。(数字が若いほど古いバージョン)
このアプリの別バージョンをダウンロードしたい際などにもバージョンIDを再利用出来ますので、全部どこかへコピペしてメモに残しておくと便利です。
③ IDとバージョンの確認方法(飛ばしてもオーケー
バージョンIDはただの数字で、実際のアプリバージョンとは異なります。
数字が若いほど古いバージョン…なので、なんとなく「このあたりかなぁ…」と判断できるとは思うのですが、ダウンロード前にバージョンを確認する方法もご紹介しておきます。
*「数字の数や並びから、バージョンを予想できる」という方は、次項のダウンロード方法まで飛ばしてしまって大丈夫です*
3-1, IDを書き換えて送信
先ほどの【p××-buy.itunes.apple.com(××は数字】という通信先部分を右クリックして『Replay > Reissue and Edit』と選択。
すると通信のコピーが出来るので、右上の画面部分にて【Raw】タブを選択。
ここに書かれている【<key>appExtVrsId</key>】の次の行…【<string>××××××</string>】の数字(×部分)を調べたいバージョンIDに書き換えてあげます。
書き換えたら、すぐ下にある緑色のボタン『Run to Completion』をクリックして、送信を行いましょう。
3-2, バージョンを確認
続いて右下の画面へ移動…。
【XML】タブを開き、ズラッと出てきた表示を少し下へスクロールしていくと…【bundleShortVersionString】と【bundleVersion】という項目が出てきます。
ここに書かれている数値が、書き換えたIDでダウンロード出来るアプリのバージョン、よく見かけるバージョンの形式となっています。
④ 好きなバージョンをダウンロードする
ここからが本番。
バージョンIDも調べましたし、IDから実際のバージョンを調べる方法も見てきました。ということで、過去バージョンのipaをダウンロードしてみましょう!
*前項の作業後、iTunesにてアプリが「ダウンロード中」で止まっている場合は再検索 or アプリの詳細ページであればアプリ名部分をクリックして再読み込みし「ダウンロード」が行える状態に戻しておいてください*
4-1, 設定を変更
メニューバーから【Rules > Automatic Breakpoints > Before Requests】を選択してチェックを付けます。
4-2, ダウンロードボタンを押す
*既に目的のアプリがダウンロード済みの場合は、iTunesのアプリ一覧から削除しておいてください*
iTunesより目的のアプリの「ダウンロード」ボタンをクリックしてください。
この場面ではダウンロードは開始されず読み込みで止まりますが、正常です。そのまま次の作業へ移ってください。
4-3, 通信先を探す
再度、通信履歴から【p××-buy.itunes.apple.com(××は数字】を探すのですが、今回はグレーの文字で【Tunnel to】と並んで書かれている場合があります。
その際は、いったんそれを選択。
続いて右側の画面から緑色のボタン『Run to Completion』をクリックしてください。これで、きちんと黒字になった通信先が出てくるはずです。
4-4, バージョンIDを書き換える
前項では出てこなかった、きちんと黒字で書かれた【p××-buy.itunes.apple.com(××は数字】を選択。
右上の画面へ移動し、【Raw】タブを選択。
ここに書かれている【<key>appExtVrsId</key>】の次の行…【<string>××××××</string>】の数字(×部分)をダウンロードしたいバージョンIDに書き換えてください。
4-5, 設定を戻す
最初に変更した設定を元に戻してあげます。
メニューバーから【Rules > Automatic Breakpoints > Disabled】を選択してチェックを切り替えましょう。
4-6, ダウンロード開始!
最後に…右側の画面から緑色のボタン『Run to Completion』をクリック! すると、iTunes側で過去バージョンのアプリがダウンロードされます。
これで好きなバージョンのアプリがiTunesのライブラリにダウンロードされます。もちろん、ipaファイルも…こんなふうに!
▲ ダウンロードが進まない場合の対処法
環境により、ダウンロードのキューには登録されるが…ダウンロードが進まないという現象が起こる場合があります。
その場合は、Fiddlerのメニューバーから【File > Capture Traffic】のチェックを外し、Fiddlerを停止させます。(再使用時はチェックを入れる)
*連続して使わない場合は、Fiddlerを終了させても可
iTunesへ戻り、キューにて【ダウンロードを一時停止】をクリック後、すぐに【ダウンロードを再開】をクリックしてあげれば、ダウンロードが進みます。
〆
といった感じで出来るようになっています。
正直、一番最初にやったときはチンプンカンプンかもしれませんが、一度成功して流れさえわかってしまえば…実はそれほど難しくなかったりします。書き換える場所も1箇所ですしね。
アップデートしたアプリに不具合が!や…昔のバージョンじゃないと!なんて事があった際には、かなり使えるテクニックかもしれないので、覚えておくと便利かも!
4-3の所が出てこないんですがどうしたらいいですか