【iOS9.3対応】Xcodeを使った非脱獄デバイスでアプリをSideloadする方法

iOS 9.2以降iPhoneなどのiOSデバイスはJailbreak出来ない状態が長く続いています。
そこで、iOS 9.3.xでも動作する「Sideload」という方法で、脱獄していないデバイスでもアプリをhookして、より便利に使用する方法を紹介いたします。
Contents
Sideloadをするのに必要なもの
- Mac OS X 10.11 El Capitan
参考:Windows上のVMwareにOS X 10.11 El Capitanをインストールする方法 - Xcode 7.3以降
- Sideloadに使用する「dylibファイル」
- Sideloadに使用する「ipaファイル(アプリ)」
- iOS App Signer
- IPAInstaller
- optool
1.Apple IDの作成と無料のDevelopper登録
Apple IDはお持ちかと思いますが、ない場合は以下のLinkから作成。
https://appleid.apple.com/account
無料のDevelopper登録を以下のLinkから行います。
https://developer.apple.com/downloads/

Apple IDでサインイン後、画像のようにチェックを入れ「Submit」
2.Xcodeのダウンロードとインストール

サインインすると、Xcodeなどをダウンロードできるページに移動するので、Xcodeをインストールしていない場合、こちらからダウンロードします。
Xcode 7.3またはXcode 7.3.1とCommand Line Toolsをインストールして下さい。
3.iOS App Signerのダウンロードとインストール
https://github.com/DanTheMan827/ios-app-signer/releases
こちらのページから最新の「iOS.App.Signer.app.zip」をダウンロードし、展開後ApplicationsフォルダにAppを入れて下さい。
4.IPAInstallerのダウンロードとインストール
https://github.com/iMokhles/IPAInstaller-Mac/releases
同様に「IPAInstaller-1.0.zip」をダウンロード・インストール
5.Optoolのダウンロードとインストール
https://github.com/alexzielenski/optool/releases
「optool.zip」をダウンロード展開後、「/usr/bin」に入れます。
以上で必要なもののインストールは完了です。
2chアプリTwinkleをSideloadで広告OFFにする
1.Dumpしたtwinkleのipaファイルを作る
現在の最新バージョンは「6.3」です。
バージョン6.0以降、何かしらの対策がされており、上手くインストールできないためバージョン5.4.1のものを使います。脱獄したiPhoneがあれば「App Admin」で簡単にダウングレードできます。

次に脱獄したiPhoneで「Clutch 2」を使用してDumpしたtwinkle.ipaを作ります。

私のRepoに「Clutch 2.0.2」があるので、インストールします。
OpenSSHかMobileTerminal系のアプリで操作します。

「Clutch -i」と入力し実行するとインストールされているアプリ一覧が表示されます。
この場合、twinkleは「3」番なのでその数字を覚えておきます。

次に「Clutch -d 3」と入力します。
「/var/mobile/Documents/Dumped/」に「com.rika.twinkle-iOS6.0-(Clutch-2.0.2).ipa」というDumpしたtwinkleのipaが出来ましたので、iFunBoxなどで取り出してあげます。
脱獄したiPhoneがない場合、お問い合わせフォームなどで連絡して下さい。
2.twinkle.ipaを右クリックからアーカイブユーティリティで展開
「Payload」というフォルダと「iTunesArtwork」というファイルが出てきます。
使用するのは「Payload」というフォルダのみで、中に「twinkle.app」が入っています。
3.「Payload/twinkle.app/twinkle」と「dylibファイル」を「optool」で紐付ける
ここで使用する「twinkle.dylib」は、普段theosでMakeする方法とは違い、説明が長くなってしまうので以下のものを利用して下さい。
twinkle.dylib
Terminalを起動して、「Payload」があるディレクトリに移動し以下のコマンドを実行
optool install -c load -p @executable_path/twinkle.dylib -t Payload/twinkle.app/twinkle
「twinkle.dylib」を「twinkle.app」へ移動
mv twinkle.dylib Payload/twinkle.app/
4.Sideload用のipaとして圧縮
zip -r twinkle_5.4.1_mod.ipa Payload/
「twinkle_5.4.1_mod.ipa」が作成されます。
Xcodeで空のプロジェクトを作成しプロビジョニングファイルを作成
1.Xcodeを起動して、Menuバーから「Xcode」→「Preferences」→「Accounts」を選択

左下の「+」ボタンでApple IDを追加

「View Details」をクリックし「iOS Development」の右にある「Create」をクリック
(2回くらいクリックするとボタンがへこんだ状態になります)
2.XcodeのCreate a new Xcode projectをクリック

3.iOS ApplicationのSingle View Applicationでプロジェクトを作成

4.Product Nameを「twinkle」など適当な名前を付ける
デスクトップなどわかり易い場所に保存して下さい。

左上のデバイスターゲット部分を自分のiPhoneに選択
5.Teamの部分をクリックして、先ほど追加したApple IDを選択
「Fix Issue」をクリックして注意マークがなくなればOK

これで「twinkle_5.4.1_mod.ipa」をインストールするためのプロビジョニングファイルが出来ました。
iOS App Signerでipaファイルに署名をする
iPhoneの実機にインストールするため、先ほど作ったプロビジョニングファイルを利用して「twinkle_5.4.1_mod.ipa」に署名をします。
1.iOS App Signerを起動して「Input File」にipaを入れる

2.「Signing Certificate」が自分のApple IDになっていることを確認
3.「Provisioning Profile」をXcodeで作成したものへ選択
4.「Start」をクリックしてipaファイルを再パッケージ化する
以上で署名されたipaファイルが完成します。
IPAInstallerで実機のiPhoneにインストール
1.IPAInstallerを起動して、作成したipaファイルをDrag&Drop

2.「Extract」をクリックしてしばらく待つ

完了すると「Install」という表記に変わります。
3.「Install」をクリックして実機にインストール

Completeとなったら完了です。
インストールしたSideloadのアプリを起動

そのままですと、信頼されていない開発元と表示され、アプリが起動できません。
1.「設定」→「一般」→「プロファイルとデバイス管理」を開く

2.デベロッパAppで自分のApple IDをタップ

3.信頼をタップしてアプリを起動できるようにする

これで起動できるようになりました。
Jailbreakしていなくても、twinkleの広告が表示されないアプリが使用できるようになりました。ただし、データは別の場所で見ているので、再設定してあげる必要があります。
その他のSideloadアプリ
VPNなしで視聴、広告なし、無制限のスキップができる「Pandora」アプリ
Pandora_7.2.1_0.1-mod.ipa
広告なし、VPNなし、偽装プレミアになれる「Spotify」アプリ
Spotify_5.7.0_003-mod.ipa
これらのアプリは、Xcodeで同様にプロビジョニングファイルを作成し、iOS App Singnerで署名することでインストールができます。
その他「YouTube」などでもバックグラウンド再生をできるようにしたり、非脱獄デバイスでもいろいろと便利にすることができます。
iOS 9.2以降Jailbreakが出来ない状態なので、こういったもので代用することが可能です。
ディスカッション
コメント一覧
最近のアプリはswiftでコーディングされているので、Clutchが対応していないケースが多いです。
なんとか野良ipaをcrackする方法ありませんかね?….