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

f:id:TTKW:20191201221020p:plain
2019/11/7 深夜、Appleサーバがアップデートされてしまい愛用してきたImpactorが使えなくなってしまいました。

Impactor作者のSaurik氏は2019/12中旬まではお仕事で時間がとれないとのことでしばらくアップデートの期待はできません。

そこでImpactorの代用として使える
Xcode + iOS App Signer を使用した未著名IPAをインストールする方法を本記事ではまとめます。

これから記載する内容は自己責任・自己判断でご使用ください。
仮想マシンやHackintoshを使う方はMacOSに関する利用規約に同意している前提の内容となります。

準備

以下に記載するものは必須となります。

 

  • iOS端末及び接続用ライトニングケーブル
    iPhoneもしくはiPadを使う前提で今回は話を進めます。

  • 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ファイル

WindowsVMware環境でMacOS環境を用意する

Mac本体をお持ちの方はこちらの手順からになります。

前提としてMacOSのイメージファイルが必要となります。
Mac本体からISOファイルを作成する、もしくはVMDKファイルを用意すればVMwareにて使えます。
今回はVMDKファイルを使った方法で進めていきます。

www.weblio.jp

 

  1. VMware Workstation 15 Playerをダウンロードします。

    www.vmware.com

    f:id:TTKW:20191130191707p:plain

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

    f:id:TTKW:20191130192056p:plain

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

    f:id:TTKW:20191130192205p:plain
    再起動完了後、インストーラーを再度起動します。

  4. 「次へ」で進んでいきます。

    f:id:TTKW:20191130193157p:plain
    同意して次へ進みます。

    f:id:TTKW:20191130192748p:plain
    拡張キーボードはチェックを付けて進みます。

    f:id:TTKW:20191201145856p:plain

    更新の確認や向上プログラム参加は不要です。

    f:id:TTKW:20191130193014p:plain
    お好みでチェックを付けます。

    f:id:TTKW:20191130193054p:plain
    インストールします。

    f:id:TTKW:20191130193240p:plain

    f:id:TTKW:20191130193255p:plain
    完了を押します。

    f:id:TTKW:20191130193332p:plain
    再起動します。

    f:id:TTKW:20191130193359p:plain

  5. ここからが重要ですので手順通りにやっていきましょう。 

    WindowsVMwareMacOSを動かすためにはVMwareを修正しないと動きません。バッチを当ててからVMwareを起動してください。

    以下のサイトからバッチファイルをダウンロードしてきます。

    github.com

    Clone or downloadを押します。

    f:id:TTKW:20191130194408p:plain
    2020/1/19追記:
    DrDonk様のGitが消えてしまったようです。見つけ次第記載します。
    臨時ダウンロードはこちら

  6. Download ZIPを押します。

    f:id:TTKW:20191130194811p:plain

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

    f:id:TTKW:20191130195050p:plain

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

    f:id:TTKW:20191201122413p:plain

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

    f:id:TTKW:20191130195620p:plain

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

    f:id:TTKW:20191130200335p:plain

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

    f:id:TTKW:20191130200739p:plain

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

    f:id:TTKW:20191130200924p:plain

    自分の環境にHyper-Vなどがインストールされていると上図のように「起動できません」といったような文言がでますのでこれが出た場合はHyper-Vの機能を削除しましょう。

    MacOSの選択肢が出てこない場合は手順5をもう1度やり直してみてください。

  13. 仮想マシン名と場所を決めます。 
    仮想マシン名は全て半角英字にしましょう。

    f:id:TTKW:20191130202759p:plain

    この場所はのちほど開いて編集するので覚えておきましょう。

  14. 容量はデフォルトの40GBで問題ありません。
    単一ファイルとして格納します。

    f:id:TTKW:20191130202925p:plain

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

    f:id:TTKW:20191130203125p:plain

  16. メモリは自分のPCの半分ぐらいのメモリで、
    プロセッサは自分のPCと同じぐらいにします。
    おおよそで問題ありません。

    新規CD/DVDの接続は物理ドライブ自動検出にします。

    f:id:TTKW:20191130203945p:plain

    ISOイメージを使用する方はここで「ISOイメージファイルを使用する」にチェックを入れファイルを選択します。

    ネットワークアダプタはブリッジ接続にします。

    f:id:TTKW:20191130204027p:plain
    最も重要なのはここですがUSB接続を3.0から2.0にします。
    これにより仮想MaciOS端末を認識出来ます。
    あとはデフォルトで問題ありませんので閉じます。

    f:id:TTKW:20191130204154p:plain

  17. 構成を確認して完了します。

    f:id:TTKW:20191130204514p:plain

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

    f:id:TTKW:20191201125058p:plain

  19. 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"

    f:id:TTKW:20191201125350p:plain

  20. フォルダの中に存在していた「vmdk」ファイルの名前をコピーします。
    あらかじめ用意していたvmdkファイルをフォルダの中に入れてコピーした名前にリネームします。

    f:id:TTKW:20191201125851p:plain

    上図の例ですと元々あったファイルを「macOS 10.14_」にリネームして、用意してきたvmdkファイルを「macOS 10.14」に名前変更しています!

  21. 起動までの準備は完了しました。
    仮想Macの電源をオンにしてみましょう。

    f:id:TTKW:20191201130643p:plain

    f:id:TTKW:20191201133233p:plain

    りんごのマークが出てくれば成功です!
    うまく起動しない場合はイメージファイルが使えないものになりますので
    ISOファイルの作り直しや別のVMDKファイルを探してきましょう。

  22. MacOSのセットアップ手順は割愛しますが
    VMware Toolsはインストールしたほうが便利です。
    セットアップ完了後、左上のPlayerからインストールします。

    f:id:TTKW:20191201134754p:plain
    その後仮想Mac上でインストーラーが起動しますのでインストールします。

    f:id:TTKW:20191201134806p:plain
    これをインストールすると
    ホスト機(Windows側) ⇔ 仮想Mac
    IPAファイルのドラッグ・アンド・ドロップ、文字列のコピー・アンド・ペーストが出来るようになります。
    仮想環境の準備は以上で完了です。

必須アプリケーションをMacOSにインストールする
  1. Xcodeは必須なのでインストールします。
    最初に自分のMacOSのバージョンと対応しているXcodeのバージョンを調査します。

    Appleのサイトに行き、対象のXcodeを検索してダウンロードします。

    ダウンロード完了後インストールします。

    https://developer.apple.com/download/more/

    f:id:TTKW:20191201142023p:plain

    MacOS10.14はXcode10.1に対応しているので私はこれを使用しました!

  2. iOS App Signerも必須なのでインストールします。

    iOS App Signer - Instructions

    f:id:TTKW:20191201142702p:plain

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

    f:id:TTKW:20191201142801p:plain
    エラーが出ると思いますが気にせずに閉じます。

  3. XcodeiOS App Signerもこれから使うものなのでDockに追加しておきます。

    f:id:TTKW:20191201143201p:plain
    追加が完了したらアプリを終了で閉じます。

IPAファイルをインストールしてみる

  1. Xcodeを開きます。
    Create a new Xcode projectを押します。

    f:id:TTKW:20191201154358p:plain

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

    f:id:TTKW:20191201154905p:plain

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

    f:id:TTKW:20191201155358p:plain

  4. そのままCreateを押します。

    f:id:TTKW:20191201162322p:plain

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

    f:id:TTKW:20191201163108p:plain
    気にせずにOKを押します。

    f:id:TTKW:20191201163127p:plain

  6. このような画面が出たらインストールします。

    f:id:TTKW:20191201163432p:plain
    Xcodeを開いているとインストールできないので閉じます。

    f:id:TTKW:20191201163531p:plain

  7. 自動でiTunesが起動しますのでアクセスを許可します。
    iOS端末側も信頼するかどうかを聞いてくるので信頼します。

    f:id:TTKW:20191201164114p:plain
    赤枠のボタンが表示されていれば接続完了です。

    f:id:TTKW:20191201164303p:plain

  8. Desktopに保存したフォルダを開き「xcodeproj」ファイルを開きます。

    f:id:TTKW:20191201164447p:plain

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

    f:id:TTKW:20191201165307p:plain

    f:id:TTKW:20191201165418p:plain

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

    f:id:TTKW:20191201170443p:plain
    メールアドレスを入力してログインします。

    f:id:TTKW:20191201170625p:plain
    このような画面になればアカウント追加完了です。この画面を閉じます。

    f:id:TTKW:20191201170838p:plain

    右下にあるManage Certificatesは触らないようにしましょう!
    手動で証明書関連を作成してしまうとそのアカウントでiOS App Signerが使用出来なくなります。

  11. 画面中央Teamを選択します。 
    手順10で追加したアカウントを選びます。

    f:id:TTKW:20191201171132p:plain

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

    f:id:TTKW:20191201171546p:plain

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

    f:id:TTKW:20191201171857p:plain

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

    f:id:TTKW:20191201194704p:plain
    処理がはじまるので待機します。

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

  15. 処理が完了するとDoneと出ます。

    f:id:TTKW:20191201195250p:plain

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

    f:id:TTKW:20191201195603p:plain

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

    f:id:TTKW:20191201195847p:plain

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

    f:id:TTKW:20191201200059p:plain

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

    f:id:TTKW:20191201214255p:plain
    端末にアプリがインストールされますのでプロファイルとデバイス管理から信頼をすればアプリが起動できます。

最後に

一見難しそうに見えますが理解してしまえば意外と簡単です。

ホスト機の性能に左右されるのかもしれませんが、インストールがとても早いのでたくさん端末持ってる人はむしろこちらのほうがいいのかもしれないです。

注意点としてはimpactorと同様で、無料アカウントの場合1端末に3appまでしかインストール出来ない+端末数の制限があるのでApple IDを複数用意しておくと便利です。
また、7日間でアプリの認証が切れるのでProvisioning Profileの再生成が必要になるかもしれません。
アプリの上書きについては暫く使ってみて注意点あれば追記していきたいと思います。