Chrome (Chromium) for iOSのビルド

Chrome for iOSをビルドしてみる

前回の調査の流れでChrome (Chromium) の指定のバージョンをビルドしてみたメモを残しておく。

Chromiumのビルド

基本

[iOS] Chromium for iOS がオープンソース化されたのでビルドしてみた Checking out and building Chromium for iOS

depot_toolsを使うとGoogleリポジトリを使うための色々な便利ツールが入っているのでインストールする。
fetch iosios向けのソースコードを取得できる。(過去のリリースビルドを取得したいので --no-history はつけない)

基本的な流れ

$ fetch ios                          # iOS向けのソースコード取得
$ cd src                               # srcに移動
$ python ios/build/tools/setup-gn.py        # 各プラットフォーム向けのディレクトリ作成などの事前準備
$ autoninja -C out/Debug-iphonesimulator gn_all          # ビルド

過去のリリースビルドでビルドしてみる

ローカルのChromiumソースを使ってChromium OSをビルドする

まずは Chrome Releases Release updates from the Chrome team でリリースビルドのバージョン番号をチェックする
バージョン番号がわかったらここでバージョン番号を入力して コミットハッシュ文字列を確認
OmahaProxy - Google Chrome

これが現時点でのiOSのリリースバージョンとコミットハッシュらしい
Log - 85.0.4183.92..85.0.4183.109 - chromium/src - Git at Google

iOS13以前のバージョン用のChromeをビルドするためにはXcodeの最新版(12)ではなく過去のバージョンに切り替える必要があるため、Apple Developer Downloads からXcode 11.7をダウンロードしておく。
旧バージョンのXcodeでアプリの動作確認するときの手順 - Qiita

$ fetch ios  # iOS向けのソースコード取得
$ cd src  # srcに移動
$ git checkout 7683ae7e63d35a9b87b2de15483090bf480e6a28     # 該当のコミットをチェックアウト

$ gclient sync            # 依存ライブラリなどの再Sync
$ gclient sync --with_branch_heads
$ gclient sync -D

$ xcode-select -p         # 現在使っているXcodeのバージョン確認
/Applications/Xcode.app/Contents/Developer
$ sudo xcode-select -s /Applications/Xcode_11.7.app/Contents/Developer/        # ダウンロードしたXcodeの旧版(11.7)に切り替え
$ xcode-select -p        # 確認
/Applications/Xcode_11.7.app/Contents/Developer

$ python ios/build/tools/setup-gn.py       # 各プラットフォーム向けのディレクトリ作成やパスなどの事前準備
$ autoninja -C out/Debug-iphonesimulator gn_all        # ビルド

ビルドが終わったら(3時間ぐらいかかった)、out/Debug-iphonesimulatorディレクトリに Chromium.app が出来ているのでそれをiOSシミュレーター起動してポイッとドロップすればインストール完了。
なんかエラーが出て設定見直した時は、out/以下を一度全削除してから python ios/build/tools/setup-gn.py すると諸々のパスの設定などが再作成されるっぽい。