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

2016/06/12 12:19

sideload-top

iOS 9.2以降iPhoneなどのiOSデバイスはJailbreak出来ない状態が長く続いています。

そこで、iOS 9.3.xでも動作する「Sideload」という方法で、脱獄していないデバイスでもアプリをhookして、より便利に使用する方法を紹介いたします。

Sideloadをするのに必要なもの

  1. Mac OS X 10.11 El Capitan
    参考:Windows上のVMwareにOS X 10.11 El Capitanをインストールする方法
  2. Xcode 7.3以降
  3. Sideloadに使用する「dylibファイル」
  4. Sideloadに使用する「ipaファイル(アプリ)」
  5. iOS App Signer
  6. IPAInstaller
  7. optool
事前準備
1.Apple IDの作成と無料のDevelopper登録
Apple IDはお持ちかと思いますが、ない場合は以下のLinkから作成。
https://appleid.apple.com/account
無料のDevelopper登録を以下のLinkから行います。
https://developer.apple.com/downloads/
sideload-01
Apple IDでサインイン後、画像のようにチェックを入れ「Submit」
2.Xcodeのダウンロードとインストール
sideload-02
サインインすると、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」で簡単にダウングレードできます。
sideload-04
次に脱獄したiPhoneで「Clutch 2」を使用してDumpしたtwinkle.ipaを作ります。
sideload-05
私のRepoに「Clutch 2.0.2」があるので、インストールします。
OpenSSHかMobileTerminal系のアプリで操作します。
sideload-06
「Clutch -i」と入力し実行するとインストールされているアプリ一覧が表示されます。

この場合、twinkleは「3」番なのでその数字を覚えておきます。

sideload-07
次に「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」を選択
sideload-08
左下の「+」ボタンでApple IDを追加
sideload-09
「View Details」をクリックし「iOS Development」の右にある「Create」をクリック
(2回くらいクリックするとボタンがへこんだ状態になります)

2.XcodeのCreate a new Xcode projectをクリック
sideload-10
3.iOS ApplicationのSingle View Applicationでプロジェクトを作成
sideload-11
4.Product Nameを「twinkle」など適当な名前を付ける
デスクトップなどわかり易い場所に保存して下さい。

sideload-12
左上のデバイスターゲット部分を自分のiPhoneに選択

5.Teamの部分をクリックして、先ほど追加したApple IDを選択
「Fix Issue」をクリックして注意マークがなくなればOK

sideload-13
これで「twinkle_5.4.1_mod.ipa」をインストールするためのプロビジョニングファイルが出来ました。

iOS App Signerでipaファイルに署名をする

iPhoneの実機にインストールするため、先ほど作ったプロビジョニングファイルを利用して「twinkle_5.4.1_mod.ipa」に署名をします。
1.iOS App Signerを起動して「Input File」にipaを入れる
sideload-14
2.「Signing Certificate」が自分のApple IDになっていることを確認
3.「Provisioning Profile」をXcodeで作成したものへ選択
4.「Start」をクリックしてipaファイルを再パッケージ化する
以上で署名されたipaファイルが完成します。

IPAInstallerで実機のiPhoneにインストール

1.IPAInstallerを起動して、作成したipaファイルをDrag&Drop
sideload-15
2.「Extract」をクリックしてしばらく待つ
sideload-16
完了すると「Install」という表記に変わります。

3.「Install」をクリックして実機にインストール
sideload-17
Completeとなったら完了です。

インストールしたSideloadのアプリを起動

sideload-18
そのままですと、信頼されていない開発元と表示され、アプリが起動できません。

1.「設定」→「一般」→「プロファイルとデバイス管理」を開く
sideload-19
2.デベロッパAppで自分のApple IDをタップ
sideload-20
3.信頼をタップしてアプリを起動できるようにする
sideload-21
これで起動できるようになりました。

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が出来ない状態なので、こういったもので代用することが可能です。