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シミュレータを起動させた状態で、シミュレータの画面上へドラッグ&ドロップすれば、
インストールは完了です。お疲れさまでした。