Chromium for iOS をシュミレータにインストールしてみる
iOSシミュレータを使った、限りなく Chrome に近い環境のテストということで、
Chrome はソースが入手できないためインストールできませんが、 代わりに Chromium を試します。
はじめに
公式のガイドは、以下にあります。
Checking out and building Chromium for iOS
システム要件
公式のガイドには以下のようにありました。
- A 64-bit Mac running 10.12.6 or later.
- Xcode 12.0 or higher.
- The current version of the JDK (required for the Closure compiler).
一方で、それに加えて、
- git、pythonのコマンドが実行できること(Macであれば、おそらくOK?)
- ストレージが十分にあること(少なくとも100GB程度は必要)
- パスに半角スペースが含まれないこと
あたりが準備できてから始めましょう。
とても、とても時間がかかるので、寝ている間などに実行しておくのがおすすめ…
depot_tools
を インストールする
リポジトリをクローンする
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
※ここで、クローンする先のパス(の一部)に半角スペースが含まれていると、うまくいかないようです…
パスを通す
$ export PATH="$PATH:/path/to/depot_tools"
※必要に応じて、~/.bashrc
や~/.zshrc
にも。
ソースコードをダウンロードする
$ mkdir chromium && cd chromium
$ fetch --no-history ios
$ cd src
※時間短縮のため、--no-history
オプションを付けています。
※それでも、30分程度かかります。
※ソースコードについても、半角スペースが含まれないディレクトリにおく必要があるようです…
🚩これ以降は全て、src
ディレクトリ内でコマンドを実行します。
インストールしたい Chromium バージョンに戻す
リリースバージョンについては、以下のサイトで確認をしました。
https://chromiumdash.appspot.com/releases?platform=iOS
※この手順はスキップ可能ですが、その場合は開発版の最新のソースがビルドされます。
※今回は、本日(2020/12/17)時点での最新の安定バージョン(87.0.4280.77)をビルドします。
戻したいバージョンのソースコードを取得する
リモートからタグの一覧を取得し、戻したいバージョンのタグへチェックアウトします。
$ git fetch --tags
$ git checkout refs/tags/87.0.4280.77
依存関係を同期する
$ gclient sync
※公式ガイドの通りです。
必要であれば、Xcodeのバージョンを変更する
$ xcode-select -p
/Applications/Xcode.app/Contents/Developer
$ sudo xcode-select -s /Applications/Xcode11.7/Xcode.app/Contents/Developer
$ xcode-select -p
/Applications/Xcode11.7/Xcode.app/Contents/Developer
ビルドの設定を行う
$ python ios/build/tools/setup-gn.py
※ここでエラーが出た場合には、out
ディレクトリの中身を一旦全て削除し、その後もう一度実行すれば良いようです。
ビルドする
今回は、iOSシミュレータ向けのデバッグビルドを行いました。
$ ninja -C out/Debug-iphonesimulator gn_all
※公式ガイドには、autoninja
コマンドが紹介されていますが、ninja
コマンドでも問題なかったです。
※ビルドの種類について、setup-gn.py
を見るとDebug
/Release
/Profile
/Official
/Coverage
の 5つが指定できるようでしたが、それぞれの違いについては、よく分かりませんでした。。
※ビルドが完了するまで、私の環境では5時間以上かかっていたようでした。
(翌朝になって、終わっていることを確認したので、正確な時間は不明です)
アプリをインストールする
今回はシミュレータ向けのデバッグビルドを行ったので、
ビルドされたアプリは、out/Debug-iphonesimulator
ディレクトリ内に作られています。
上記ディレクトリから、Chromium.app
ファイルを探し出し、
iOSシミュレータを起動させた状態で、シミュレータの画面上へドラッグ&ドロップすれば、
インストールは完了です。お疲れさまでした。