目的
本記事では、iOSアップデートに置ける開発上での危険性とダウングレードの方法について紹介します。
iOSアップデートにおける開発上での危険性
iOSの開発現場で取り返しのつかないミスの一つに検証端末のアップグレードというものが挙げられます。
私たちが普段使っているiPhoneなどの端末で、手動・自動で行われているOSのアップグレード。iOSの開発に携わらない人であれば、この行為はなんら問題のない当たり前の行動になると思います。
しかしこのアップグレードはiOSの開発現場で不用意に行うと、大問題に繋がる重大なミスになるのです。
なぜダメのなのか?
1 検証ができなくなる
まず第一に挙げらるのが、開発しているアプリケーションの検証ができなくなるという点があります。開発現場ではユーザーがどのバージョンのOSでも問題なく操作できるように、検証端末と呼ばれる各OSごとに分けられた端末で実機実装して挙動を確認し、そこで問題なくパスできるかを確認します。そのため、その検証端末を最新のOSにアップグレードすると古いOS環境での挙動が正常に確認できない事態になるのです。
2 ダウングレードができない
OSをアップデートしたなら、前のOSにダウングレードすればいいじゃないかと考える方もいると思いますが、ほとんどの場合これが不可能なのです。その理由が下記の画像になります。
この画像は本日2019/09/03時点でダウングレード可能なバージョンとダウングレード不可能なバージョンを表示しているものです。
画像上部のSigned IPSWsと書かれている下の緑色のバージョンがダウングレード可能な物、Unsigned IPSWsと書かれている下の赤色のバージョンがダウングレード不可能な物になります。つまり、最新のバージョンから一つ前のバージョンまでしかダウングレードできず、ほとんどのバージョンへのダウングレードは不可能ということになります。
では、なぜこのような事が起きるのでしょう???
原因はSHSHの失効
SHSHとはSignature Hash.shの略で、Appleによって発行されるファームウェア(OS)の許可証のことです。この許可証は、iOSファームウェアを端末にインストールして良いかを判断してくれます。つまり、SHSHの著名が切れる(失効する)ともう2度とそのOSにダウンロードすることができなくなるのです。しかもその失効の周期は早く、ダウングレード可能なOSは画像の通り1つ前やよくても2つ前のものになります。そのため、iOSアプリの開発現場などで必要な半年や1年前のOSはほぼダウングレードできないということになります。
ダウングレードの方法
上記の解説でiOSのダウングレードが困難な理由は説明しましたが、運よくまだSHSHが失効していなかった場合のダウングレードの方法を下記に記載します。
1 IPSWファイルのインストール
IPSWとはiPhoneSoftwareの略で、iOSファームウェア(OS)をインストールするためにiTunesで使用されるファイル形式です。
これをこの https://ipsw.me/ から端末と必要なOSバージョンを選んでインストールしてください。
2 端末をリカバリーモードにして、iTunesに繋げる

・iPhone XとiPhone 8/8 Plusの場合:音量を上げるボタンを押してすぐ離します。次に、音量を下げるボタンを押してすぐ離します。次に、リカバリーモード画面が表示されるまで、スリープボタンを押し続けてください。
・iPhone 7/7 Plus の場合:スリープボタンと音量を下げるボタンを同時に押します。次のリカバリモードの画面が表示されるまで両方のボタンを押し続けてください。
リカバリーモードになったらiTunesに端末を接続してください。
・iPhone 6s以前/iPad/iPod touchの場合:スリープボタンとホームボタンを同時に押します。次のリカバリモードの画面が表示されるまで両方のボタンを押し続けてください。
3 復元

最後に
この記事は私が現場でやらかしてしまったミスを繰り返さないようにと、記述した記事になります。
私の場合はOSが1時間後に自動アップデートの設定になっており、気付いた時にはOSが最新になってしまっていました。
次なる犠牲を出さないように、本記事を参考にしてくれたら幸いです。
ここまで読んでくれた方々ありがとうございます。