Xcode + iOS App Signer を使って未署名IPAをインストールする方法 脱獄不要

2019/11/7 深夜、Appleサーバがアップデートされてしまい愛用してきたImpactorが使えなくなってしまいました。
Impactor作者のSaurik氏は2019/12中旬まではお仕事で時間がとれないとのことでしばらくアップデートの期待はできません。
そこでImpactorの代用として使える
Xcode + iOS App Signer を使用した未著名IPAをインストールする方法を本記事ではまとめます。
これから記載する内容は自己責任・自己判断でご使用ください。
仮想マシンやHackintoshを使う方はMacOSに関する利用規約に同意している前提の内容となります。
準備
以下に記載するものは必須となります。
- Mac OS X 10.9以降
Windowsでは作業不可となります。
MacOSは仮想マシンやHackintoshでも大丈夫です。 -
Xcode 7以降
Appleソフトウェアを開発するための環境です。
App StoreまたはAppleのDev Webサイトからダウンロードする必要があります。詳しくは後述します。 -
iOSアプリ署名者
未著名のiOSアプリを自分のApple IDで著名してくれる優れものです。IPAを著名することが出来ます。 -
Apple ID
impactorで使用していたもので問題ありません。 -
インストールしたいIPAファイル
WindowsのVMware環境でMacOS環境を用意する
前提としてMacOSのイメージファイルが必要となります。
Mac本体からISOファイルを作成する、もしくはVMDKファイルを用意すればVMwareにて使えます。
今回はVMDKファイルを使った方法で進めていきます。
- VMware Workstation 15 Playerをダウンロードします。

-
ダウンロードしたインストーラーを起動します。

-
このような画面が出てくることがありますが「はい」を押し再起動します。

再起動完了後、インストーラーを再度起動します。 - 「次へ」で進んでいきます。

同意して次へ進みます。
拡張キーボードはチェックを付けて進みます。
更新の確認や向上プログラム参加は不要です。

お好みでチェックを付けます。
インストールします。

完了を押します。
再起動します。
- ここからが重要ですので手順通りにやっていきましょう。
WindowsのVMwareでMacOSを動かすためにはVMwareを修正しないと動きません。バッチを当ててからVMwareを起動してください。
以下のサイトからバッチファイルをダウンロードしてきます。
Clone or downloadを押します。

2020/1/19追記:
DrDonk様のGitが消えてしまったようです。見つけ次第記載します。
臨時ダウンロードはこちら - Download ZIPを押します。

- ダウンロードしてきたZIPを解凍します。
win-install.cmdを右クリック ⇒ 管理者として実行します。

- このような画面が出てきてダウンロードがはじまれば問題ありません。
処理が終了すると自動的に消えます。

- VMwareを起動します。
初回起動時にこのような画面が出てきますが無償版を選択して次へ進みます。

- 新規仮想マシンを作成します。

- 後でOSをインストールします。

- MacOSを選択します。
私が用意したのはMacOS10.14(mojave)ですので以下のようにします。

自分の環境にHyper-Vなどがインストールされていると上図のように「起動できません」といったような文言がでますのでこれが出た場合はHyper-Vの機能を削除しましょう。
MacOSの選択肢が出てこない場合は手順5をもう1度やり直してみてください。 - 仮想マシン名と場所を決めます。
仮想マシン名は全て半角英字にしましょう。

この場所はのちほど開いて編集するので覚えておきましょう。
- 容量はデフォルトの40GBで問題ありません。
単一ファイルとして格納します。

- 完了する前にハードウェアをカスタマイズします。

- メモリは自分のPCの半分ぐらいのメモリで、
プロセッサは自分のPCと同じぐらいにします。
おおよそで問題ありません。
新規CD/DVDの接続は物理ドライブ自動検出にします。

ISOイメージを使用する方はここで「ISOイメージファイルを使用する」にチェックを入れファイルを選択します。
ネットワークアダプタはブリッジ接続にします。

最も重要なのはここですがUSB接続を3.0から2.0にします。
これにより仮想MacでiOS端末を認識出来ます。
あとはデフォルトで問題ありませんので閉じます。
- 構成を確認して完了します。

- 手順13で指定したフォルダを開きます。
メモ帳などのテキストエディタで「vmx」ファイルを開きます。
拡張子が表示されておらずどれがvmxファイルか分からない方はこちらを参考にして拡張子の表示をオンにしてください。

- vmxファイルの最終行に以下の9行を追記して保存して閉じます。
smc.version = "0"
keyboard.vusb.enable = "TRUE"
keyboard.vusb.idVendor = "0x0000"
keyboard.vusb.idProduct = "0x0000"
mainMem.useNamedFile = "FALSE"
MemTrimRate = "0"
svga.vramSize = "134217728"
logging = "FALSE"
sata0:1.virtualSSD = "0"
- フォルダの中に存在していた「vmdk」ファイルの名前をコピーします。
あらかじめ用意していたvmdkファイルをフォルダの中に入れてコピーした名前にリネームします。

上図の例ですと元々あったファイルを「macOS 10.14_」にリネームして、用意してきたvmdkファイルを「macOS 10.14」に名前変更しています!
- 起動までの準備は完了しました。
仮想Macの電源をオンにしてみましょう。


りんごのマークが出てくれば成功です!
うまく起動しない場合はイメージファイルが使えないものになりますので
ISOファイルの作り直しや別のVMDKファイルを探してきましょう。 - MacOSのセットアップ手順は割愛しますが
VMware Toolsはインストールしたほうが便利です。
セットアップ完了後、左上のPlayerからインストールします。

その後仮想Mac上でインストーラーが起動しますのでインストールします。
これをインストールすると
ホスト機(Windows側) ⇔ 仮想Mac
でIPAファイルのドラッグ・アンド・ドロップ、文字列のコピー・アンド・ペーストが出来るようになります。
仮想環境の準備は以上で完了です。
必須アプリケーションをMacOSにインストールする
- Xcodeは必須なのでインストールします。
最初に自分のMacOSのバージョンと対応しているXcodeのバージョンを調査します。
Appleのサイトに行き、対象のXcodeを検索してダウンロードします。
ダウンロード完了後インストールします。
https://developer.apple.com/download/more/

MacOS10.14はXcode10.1に対応しているので私はこれを使用しました!
- iOS App Signerも必須なのでインストールします。

ダウンロード後インストールするとこのような画面が出ますが気にせずに開きます。

エラーが出ると思いますが気にせずに閉じます。 - XcodeもiOS App Signerもこれから使うものなのでDockに追加しておきます。

追加が完了したらアプリを終了で閉じます。
IPAファイルをインストールしてみる
- Xcodeを開きます。
Create a new Xcode projectを押します。

-
Single View Appを選択してNextを押します。

-
Product Nameは適当に記入します。
Organization Nameも適当に記入します。
Organization Identifierも適当でいいですが本家アプリに合わせて「com.nianticlabs」にしてみました。
他はデフォルトでいいのでNextを押します。
- そのままCreateを押します。

- 次にiOS端末をPCに繋ぎます。
仮想マシンの方はこのような画面が出ますので「仮想マシンに接続」へチェックを入れてOKを押します。

気にせずにOKを押します。
- このような画面が出たらインストールします。

Xcodeを開いているとインストールできないので閉じます。
- 自動でiTunesが起動しますのでアクセスを許可します。
iOS端末側も信頼するかどうかを聞いてくるので信頼します。

赤枠のボタンが表示されていれば接続完了です。
- Desktopに保存したフォルダを開き「xcodeproj」ファイルを開きます。

- 赤枠の部分を押して自分の端末を選択します。


- Add Accountで自分のApple IDを追加します。

メールアドレスを入力してログインします。
このような画面になればアカウント追加完了です。この画面を閉じます。
右下にあるManage Certificatesは触らないようにしましょう!
手動で証明書関連を作成してしまうとそのアカウントでiOS App Signerが使用出来なくなります。 - 画面中央Teamを選択します。
手順10で追加したアカウントを選びます。

- 赤いエラーが自動で消えますのでこれで準備完了です。

- IPAファイルを用意します。
本家IPAファイルでも問題ありません。

- iOS App Signerを開きます。
Input FileのBrowseを押して用意したIPAファイルを選択します。
Signing Certificateを自分のAppleIDにします。
Provisioning Profileは手順11に記載されていたBundle Identifierを選択します。
その他はそのままでいいのでStartを押します。
著名されたIPAファイルの名前を適当に入力してSaveします。

処理がはじまるので待機します。重要なポイントがここであります!
無料のアカウントで作成したアプリは端末にインストールしても7日間でアプリが起動できなくなってしまいます。
そこでXcodeで再インストールするわけですがここで指定しているProvisioning Profile名は同一のものにしましょう。
上図でいうNew Application IDが同一であればアプリを消さずに上書きすることが出来ます。 - 処理が完了するとDoneと出ます。

- Xcodeに戻りWindow⇒Devices and Simulationsを押します。

- 警告のようなマークが出ますが無視をしてプラスマークを押します。

- iOS App Signerで著名したIPAを選択します。

- インストールがはじまります。
すぐに完了します。

端末にアプリがインストールされますのでプロファイルとデバイス管理から信頼をすればアプリが起動できます。
最後に
一見難しそうに見えますが理解してしまえば意外と簡単です。
ホスト機の性能に左右されるのかもしれませんが、インストールがとても早いのでたくさん端末持ってる人はむしろこちらのほうがいいのかもしれないです。
注意点としてはimpactorと同様で、無料アカウントの場合1端末に3appまでしかインストール出来ない+端末数の制限があるのでApple IDを複数用意しておくと便利です。
また、7日間でアプリの認証が切れるのでProvisioning Profileの再生成が必要になるかもしれません。
アプリの上書きについては暫く使ってみて注意点あれば追記していきたいと思います。