Version 1.0
Advice you have information ALPHA

やっちまった〜!
iOS アプリのバージョンを戻したい!
Revert! Revert!

アプリ復活の儀
1. まず iPhone のやっちゃったアプリを消す
2. それから iPhone を MacBook につなぐ
以上。
これでだめなら以下を読んでください。
CAUTION!
iPhone を MacBook につなぐのはちょっと待って!
もう間に合わないかもしれないけど。
万全のため、まず、やっちゃったアプリを
iPhone から消しておいてください。

前提: MacBook を持っている。以前に iPhone を MacBook につないだことがある。

ようするに

iTunes の Mobile Applications フォルダを
バックアップしておきましょう
という話。

それでアプリのバージョンを管理できます。

Mobile Applications フォルダが
iOS アプリの格納庫です。
中に ipa ファイルが収まっています。

簡単なバックアップの方法:
Mobile Applications フォルダを
適度な頃合いで duplicate しておく。

duplicate の方法:
フォルダを右クリックして
メニューから Duplicate (複製)
を選ぶ。
基礎知識

iOS アプリを ipa ファイルの形で
MacBook のどこかに持っているとして、
それを iPhone へ送り込む手順。

1. アプリを iTunes へ取り込む。
2. それを iPhone へ送り込む。

たったこれだけ。

1. まず iTunes へ取り込む:

ipa ファイルをダブルクリックする。
新しいのすでにあるけどどうするって聞かれたら

A newer version of the app "Gmail"
already exists in your iTunes library.
Are you sure you want to replace it
with the one you are moving?
[Don't Replace] [Replace]

かまわず Replace を実行する。

2. iPhone へ送り込む:

まず iPhone でアプリを delete しておいて!
それから iPhone を MacBook へつなぐ。

たったこれだけ。

問題は、
古いバージョンのアプリがどこに残っているか?

という話です。 どこに残っているか、それは状況に依ります。

今、どういう状況?

update してから、
1: まだ iTunes@MacBook で sync していない
2: もう iTunes@Macbook で sync しちゃった
2.1: まだ Trash@MacBook を empty していない
2.2: もう Trash@MacBook を empty しちゃった

以上のシチュエーションがあるわけです。

1 なら簡単です。

iPhone で app を delete してから
MacBook に繋げばよいわけです。

たったこれだけ。
すると iTunes@MacBook が勝手に sync してくれて
iTunes@MacBook が保存している app を
iPhone へ送信してくれます。
一件落着。

しかし!
こんな牧歌的シチュエーションは稀です。

iPhone で app を delete する前に
MacBook に繋いでしまうことのほうが
断然多いと思います。

これが状況 2 です。

こうなると sync が裏目に出ます。
iTunes@MacBook は
新しいバージョンの app を iPhone から読み込んで
iTunes が保存している app を更新します
古い app は Trash へ入ります。

iTunes のバージョンによっては
Previous Mobile Applications フォルダに
古い app は入れられるかもしれません。

これが状況 2.1 です。

これならまだ簡単です。
古い app を見つけて、
(たとえば Gmail 1.3.1415.ipa)
どこかへ保存しておけばいいわけです。

しかしですよ!

Trash をいつまでもほったらかしにしている、
そういう状況を期待することもおかしい話です。
Trash をこまめに空にする人だっているのです。

これが状況 2.2 です。

したがって
ソリューションを提供するというならば、
この状況 2.2 を想定しなければなりません。

つまり
Mobile Applications の
バックアップを忘れずに
ということになります。
これを避けては通れません。

iOS のお作法

iPhone を MacBook につなぐ前に
MacBook の Mobile Applications を
バックアップしておく癖をつけること。

バックアップしておくフォルダ
~/Music/iTunes/iTunes Media/Mobile Applications/
(~ は Home の意味)
iTunes で
Sync Apps
Automatically sync new apps
の check を外しておくという手もあり。

別解: iOS で google のアプリなんか使わない

google のサービスは safari で使う。

じつはジャスティスなソリューションです。 iOS という限られたリソースで、 独立して存在する意義もないアプリをやたらインストールし、やたら起動して、 リソースを食い散らかしているというのは、 iOS ユーザーとして筋がよくありません。 とはいえ、アプリだと push 通知ができるということと、ユーザー側でバージョン管理できるというメリットもあります。

safari はある意味 OS です。プラットフォームである safari を使えばいいところで、わざわざ使わないというのは、リソースの無駄です。独立したアプリにしたほうがよいものもありますが、 safari の javascript でできることを、わざわざアプリにして、インストールさせようとするのはなぜか? safari の枠から出たいとか速度向上という大義名分の裏にいろいろ仕掛けたいこともあるようです。

上級: iTunes だけで iPhone Apps を管理できます

iTunes

  Library
    Apps

  これは iTunes の
  Mobile Applications の内容を表示する

  DEVICES
    iPhone
      Apps

  これは iPhone の
  Apps の状態を表示する

  [*] Sync Apps
  [*] Automatically sync new apps
  (これらを check しないという手もあり)

  ここでできること:
  apps の remove or transfer

  Select apps to be installed on your iPhone
  or drag to a specific home screen.
  Drag to rearrange app icons or home screens.
  (Select = ターゲットのアプリのアイコンを左クリック)

なにか変更したら
Apply をクリックすることで変更が確定する。
iTunes で iPhone の app を remove する:

  iPhone screen でターゲットの app を選ぶ
  app アイコンに現れる X をクリック
  Apply をクリック

  Are you sure
  you want to remove the app "Gmail"
  from the iPhone?
  This will delete this app and its data
  from the iPhone.

  [Cancel] [Remove]

  Hit Remove!

  iTunes has found purchased items on the iPhone
  that are not present in your iTunes library.
  Do you want to transfer these items
  from this iPhone back to your iTunes library?

  If you do not transfer these purchased items
  to you iTunes library,
  they will be removed from the iPhone.

  [Don't Transfer] [Transfer]

  Hit Don't Transfer!

これで iPhone にあるアプリを
iTunes で delete できました。
iTunes で app を iPhone へ install する:

Sync Apps のリストで
install したい app を check して
Sync をクリックする。
または
Sync Apps のリストから
app を iPhone の screen へ drag して
Apply をクリックする。

topic: macosx
first posted: 2012-12-07 11:51:45
last modified: 2012-12-07 21:53:43