J2ObjC のビルド

要件

  • Apple Mac OS X システム
  • 最新バージョンの Xcode
  • JDK JDK 11 がインストールされている
  • Apache Maven
  • (推奨、必須ではない)Google Protocol Buffer ソース

Mac のセットアップ

  • 次のコマンドを実行して、Xcode コマンドライン ツールをインストールします。
sudo xcode-select --install
  • .bash_profile に追加:
export JAVA_HOME=`/usr/libexec/java_home -v 11`
  • Maven がインストールされていない場合(ターミナルで mvn -version を試す)、Homebrew を使用します。
brew install maven

J2ObjC プロジェクトのフォークを作成する

J2ObjC プロジェクトをフォークするには、メインページを開き、[フォーク] ボタンをクリックします。

Fork

GitHub アカウント名を選択すると、数秒でフォークが作成されます。

次に、開発用のローカル システムにフォークのクローンを作成します。まず、[Clone or download] ボタンをクリックし、[Copy to Clipboard] ボタンをクリックします。

クローンを作成

次に、ローカル ディレクトリにクローンを作成します。

git clone (Command-V)  # Paste the copied URL

protobuf と abseil をインストールする

J2ObjC をビルドするには、protobuf C++ がインストールされている必要があります。

protobuf バイナリ パッケージをインストールするには、Homebrew を使用します。

brew install protobuf

Protobuf C++ ビルドは Abseil ライブラリに依存するようになったため、こちらもインストールします。

brew install abseil

PROTOBUF_ROOT_DIR は、protobuf がインストールされているルートに設定する必要があります。通常、これは Homebrew のデフォルト /usr/local です。.bash_profile に次のように追加します。

export PROTOBUF_ROOT_DIR=/usr/local # or your custom Homebrew dir

確認するには、$PROTOBUF_ROOT_DIR/bin/protoc --version を実行します。

J2ObjC のビルド

ターミナル ウィンドウでコマンドラインからビルドするには、次のコマンドを実行します。

# Build just the translator and libraries
make dist

# Build the protocol buffer compiler and runtime for J2ObjC
make protobuf_dist

# Build everything that is included in the project's
distribution bundles
make all_dist

J2ObjC のテスト

ターミナル ウィンドウのコマンドラインからテストするには、次のコマンドを実行します。

# Run translator and library unit tests
make test

# Run all unit tests, including for protocol buffers
make test_all

ビルドのクリーンアップ

# Remove all files generated by the build
make clean

並列ビルド

J2ObjC ビルドは並列ビルドをサポートしています。これは -j<n> フラグを使用して指定します。ここで、n は同時実行タスクの最大数です。最大値はシステムの速度によって異なります。-j4 から始めることをおすすめします。システムで処理できる場合は数を増やしてビルド時間を短縮し、make がシステムエラーで失敗する場合は数を減らします。

32 ビット iOS アーキテクチャの構築

32 ビット iOS アーキテクチャ(「iphone」と「simulator」)はデフォルトでビルドされません。これらのアーキテクチャを使用して j2objc をビルドするには、まず J2OBJC_ARCHS 環境変数で指定します。

$ export J2OBJC_ARCHS="iphone simulator"
$ make -j8 all_dist

一般に、サポートされているアーキテクチャのサブセットを指定すると、アプリに必要なアーキテクチャのみを指定してローカルビルドを高速化できます。64 ビット iOS(「iphone64」)とそれに関連するシミュレータ(「simulator64」)のみをビルドするには、make を実行する前に J2OBJC_ARCHS="iphone64 simulator64" を定義します。

完全なディストリビューションを構築する

ファイルサイズの制限により、j2objc チームはビルド済みディストリビューションを GitHub に投稿しなくなりましたが、「すべてを 1 つのステップでビルド」スクリプトを引き続き使用できます。

$ scripts/build_distribution.sh HEAD-<current-date> $PROTOBUF_ROOT_DIR

このスクリプトは、すべての j2objc パッケージのすべてのアーキテクチャがビルドされるため、実行に時間がかかります。ただし、最小限の環境変数セットでビルドされるため、一般的なビルドエラーが発生した場合に非常に役立ちます。build_distribution スクリプトが成功しても通常のビルド手順が成功しない場合は、ローカル環境変数が正しく設定されていないかどうかを確認します。