App Storeから古いバージョンのアプリケーションをダウンロードする方法

  1. 公開日:2016/01/06
  2. 更新日:
  3. Mac
  4. ,
  5. 0

@おったんです。新年明けましておめでとうございます。今年も本ブログを宜しくお願い致します。

App Storeから古いバージョンのアプリケーションをダウンロードする

アプリケーションのバージョンを最新に保つことは、セキュリティ、機能改善にも役立つことですが、時にバージョンアップしたことによる不具合に見舞われることがあります。その場合は、以下の方法を使用して、任意の古いバージョンをiPhoneにダウンロードすることができますのでお試しください。

少々、長い行程で面食らいますが、慣れてしまえば同じことの繰り返しですので簡単です。ぜひ、最後までご覧いただければと思います。

Charlesのダウンロード

Charlesは、HTTPプロキシ、HTTPモニタ、リバースプロキシとして機能するソフトウェアで、端末⇄サーバ間のHTTP、およびHTTPSのリクエストと応答をモニタリングできます。Charlesは優勝版ですが、30日間は無料で試用することができます。以下のリンクから、試用版のCharlesをダウンロードしてください。

http://www.charlesproxy.com/latest-release/download.do

Charlesのインストール

Charlesをダウンロードし、ディスクイメージ(dmg)ファイルをダブルクリックすると、ライセンスが表示されますので「Agree」ボタンをクリックします。

「Charles.app」を「Applications」にコピーすると、インストールは完了です。

Charlesの起動

Charlesがネットワークモニタとして機能するために、権限を求められるため「Grant Priviliges」をクリックします。これは、Charlesの初回起動時のみ求められます。

権限の付与には管理者権限が必要であるため、管理者のユーザ名とパスワードを入力します。

Charlesは、Firefoxのアドオンとしても機能するようですが、今回は使用しないため、「Cancel」をクリックします。

以上で、Charlesの起動は完了です。

Charlesで古いアプリケーションをダウンロードする

ここからは、Charlesを使用してiTunes Storeから古いバージョンのアプリケーションをダウンロードする方法をご紹介します。

STEP1. 目的のアプリケーションをダウンロードする

iTunesを起動し、iTunes Storeから目的のアプリケーションをダウンロードします。今回は、Facebookを対象とします。

STEP2. CharlesのSSLプロキシを有効化する

端末⇄iTunes Store間の通信はSSLで暗号化されているため、このままではネットワーク通信をモニタリングできません。Charlesの左ペインの「Structure」タブから「https://**-buy.itunes.apple.com」を見つけ、SSLのモニタリングを有効化するために、右クリックして「Enable SSL Proxying」をクリックします。これで次回以降、このサーバに対するSSL通信をモニタリングすることができるようになりました。

STEP3. 目的のアプリケーションをダウンロードする(2回目)

iTunesから、STEP1でダウンロードしたアプリケーションを削除し、再度同じアプリをiTunes Storeからダウンロードします。

その際に、端末⇄iTunes Store間の通信にCharlesが介入されるため、上記のような警告画面が表示されますが、問題ありませんので「続ける」をクリックします。

STEP4. アプリケーションの情報を取得する

Charlesの左ペインの「Structure」タブから「https://**-buy.itunes.apple.com」を再度見つけます。この時、鍵マークが付いていないことを確認してください。三角形のマークをクリックして展開していくと、「WebObjects」→「MZBuy.woa」→「wa」→「buyProduct」が見つかります。

Charlesの右ペインの「Response」をクリックすると、デフォルトで「XML Text」の内容が表示されます。この状態で「buyProduct」を右クリックして、「Export」をクリックします。

任意の保存先にXMLファイルの内容を保存します。「Format」が「XML Session File」となっていることを確認してください。

エクスポートしたXMLファイルを開くと、iTunes Storeから取得したアプリケーションの情報が表示されます。この中から、「softwareVersionExternalIdentifiers」を見つけてください。

<key>softwareVersionExternalIdentifiers</key>
  <array>
    <integer>18372</integer>
    <integer>23552</integer>
    <integer>478761</integer>
    <integer>1427863</integer>
    <integer>1452591</integer>
    ...
  <array>

ここに表示されている番号が、アプリケーションのバージョンを一意に識別する番号になります。古い番号ほど、古いバージョンのアプリケーションになります。ただし、このままでは、アプリケーションのバージョン情報がわかりませんので、再度Charlesで確認します。

STEP5. アプリケーションのバージョン情報を取得する

再度、Charlesを開き、「STEP4」の「buyProduct」を右クリックして、「Edit」をクリックします。

「XML Text」内の「appExtVrsId」の番号を、「STEP4」の「softwareVersionExternalIdentifiers」で確認した番号に書き換えます。書き換えたら「Execute」をクリックします。

すると、再度iTunes Storeとの通信が始まり、応答が返ってきます。Charlesの右ペインの「Response」タブから「bundleShortVersionString」を見つけます。これが実際のアプリケーションのバージョン情報になります。ダウンロードしたいバージョンと異なる場合は、「STEP4」から「STEP5」を繰り返し、「softwareVersionExternalIdentifiers」と、「bundleShortVersionString」の対応を確認します。

STEP6. 古いバージョンのアプリケーションをダウンロードする

STEP5でダウンロードしたいアプリケーションのバージョン情報が確認できたら、いよいよCharlesを使用して古いバージョンのアプリケーションをダウンロードします。あらかじめ、事前にiTunesからダウンロードしたアプリケ−ションを削除しておきます。

「buyProducts」を右クリックして、「Breakpoints」をクリックします。これで、iTunes Storeからアプリケーションをダウンロードする際に、特定のポイントで通信が停止するようになります。

再びiTunes Storeに戻り、ダウンロードしたいアプリケーション(今回の場合は「Facebook」)をダウンロードします。

Charles」に戻り、左ペインの「Structure」タブから「https://**-buy.itunes.apple.com」を探します。右ペインの「Edit Request」をクリックして、「appExtVrsId」の番号を書き換えます。書き換えが完了したら「Execute」をクリックします。

途中、通信が停止した場合は、再度「Execute」をクリックします。最後まで通信が完了したらダウンロードは完了です。

これで任意のバージョンのアプリケーションをiTunes Storeからダウンロードすることができました。

再度アプリケーションをダウンロードしようとした場合、再びブレークポイントで通信が遮断されてしまうため、メニューから「Breakponts」を解除しておきましょう。

まとめ

長い道のりでしたが、道中の工程を簡単に整理すると以下のようになります。

  1. Charlseでアプリケーションの情報を取得する
  2. Charlseでダウンロードしたいアプリケーションの番号を確認する
  3. Charlseでブレークポイントを設定し、ダウンロードしたアプリケーションのバージョン情報に書き換えを行う

この工程を繰り返すことで、任意のアプリケーションの任意のバージョンをダウンロードすることができるようになります。あとは、iTunesとiPhoneを同期することで、古いバージョンをiPhoneに導入することが可能です。

注意点としては、すべてのバージョンがダウンロードできるとは限らない点です。あまりに古いバージョンを指定すると、サーバからエラーが返却されますのでご注意ください。

この記事が気に入ったらいいねしよう!
関連記事
ご意見ボード
匿名で管理人に送信されます。※送信専用です。返信はできません。
ご指摘・ご意見
Top