touchHLE AndroidやWindowsでiOSアプリを動かせる広義的な意味でのエミュレーター
期待はしないでください。
32 bitアプリ限定
iPhone OS 2.xおよびiPhone OS 3.0向けのiPhoneおよびiPod touchアプリ限定である。
touchHLEがやっているのは、iPhoneというハードやOS全体の再現ではない。 アプリが呼び出す「iOSの仕組み」を模倣する、いわばアプリ専用の環境再現。 アプリの内部では、UIKitやCoreGraphicsなどのAPIが呼ばれている。 touchHLEはそれらの呼び出しを独自に書き直したC++実装に置き換え、 描画はSDLやOpenGLで、音声はOpenALで処理している。 つまり、アプリにとっては「iOSが動いているように見せかける」だけ。 実際にiOSのカーネルやファイル構造が再現されているわけではない。touchHLE は広義にはエミュレーターだが、 実際には Wine のような互換レイヤー型の高レベルエミュレーションであり、 NoxPlayer のようなハードウェア仮想化型エミュレーターではない。
互換性リスト
Appleの内部情報にはアクセスしていない
touchHLEの設計思想でもうひとつ重要なのが、Appleの非公開コードやデータを使わないことだ。 APIの挙動は文書化された範囲や解析によって再現されており、 Apple純正のシミュレーター(Xcode上のもの)やiOSそのものをコピーしたわけではない。
そのため、プロジェクトはGitHub上でオープンソースとして公開されている。 このため、ライセンス違反にはならず、法的リスクもない。
やり方
準備
Releaseからファイルをダウンロードしzipファイルを解凍する。(Androidならapkからインストールもしておく)
動かしたいアプリの .ipa ファイルを用意
- ipaファイルを指定の位置に移動する
Androidなら /storage/emulated/0/Android/data/org.touchhle.android/files/touchHLE_apps
WindowsならtouchHLE_apps
- touchHLEを起動
Windowsならexeから起動