- Parent publication
- Bitriseドキュメントへようこそ!
- ワークフローとパイプライン
- ワークフロー
- クロスプラットフォームアプリのワークフローレシピ
クロスプラットフォームアプリのワークフローレシピ
FlutterやReactNativeなどのクロスプラットフォームフレームワークで構築されたアプリのワークフローレシピ。
ワークフローレシピは、一般的なワークフロータスク用の既製のソリューションを提供します。
ここでは、FlutterやReactNativeなどのクロスプラットフォームフレームワークで構築されたアプリのワークフローレシピを見つけることができます。
(React Native) キャッシュの依存関係 (node_modules)
説明
依存関係のキャッシュを設定します (node_modules React Native アプリのフォルダー)。
指示
-
追加Bitrise.io キャッシュ:プルステップ。
-
次のいずれかを追加します yarn コマンドを実行する または npm コマンドを実行する プロジェクトのセットアップに基づいて、ワークフローに進みます。入力変数を設定します。
-
をセットする実行する糸コマンドまた実行する引数を指定した npm コマンド への入力変数
インストール. -
設定node_modules をキャッシュするに
はい.
-
-
追加Bitrise.io キャッシュ:プッシュステップ。
-
(オプション) キャッシュを圧縮 への入力変数
真実.これは、キャッシュ フォルダーが大きく、ビルド時間が遅い場合に役立ちます。
bitrise.yml
使用する 糸:
- cache-pull@2: {}
- yarn@0:
inputs:
- cache_local_deps: 'yes'
- command: install
- cache-push@2:
inputs:
- compress_archive: 'true'
使用する npm:
- cache-pull@2: {}
- npm@1:
inputs:
- cache_local_deps: 'yes'
- command: install
- cache-push@2:
inputs:
- compress_archive: 'true'
(React Native) Expo: Turtle CLI を使用してビルドする
説明
アプリを Expo のサーバーに公開し、iOS App Store を構築する.ipaそしてアンドロイド.aabを使用して Expo プロジェクトからファイルタートル CLI.
前提条件
-
に基づいて、iOS 配布証明書と App Store プロビジョニング プロファイルを生成します。iOS コード署名ファイルの生成ガイド.
-
次の手順に従って Android キーストアを生成します。Android Studio ガイドによる Android コード署名.
-
できることを確認してくださいExpo プロジェクトを公開するローカル。
指示
-
でアプリを開きます ビットライズ。
-
クリック ワークフロー メインページのボタン。
-
に行く コード署名とファイル タブ。
-
プロジェクトの iOS 配布証明書と App Store プロビジョニング プロファイルがアップロードされていることを確認します。
そうでない場合は、プロビジョニング プロファイルを追加そしてそのコード署名用の証明書 (.p12 ファイル) を追加する、 それぞれ。
-
プロジェクトの Android キーストア ファイルがアップロードされていることを確認します。
そうでない場合は、キーストア ファイルをアップロードファイル (最大 5 MB)のフィールドAndroid キーストア ファイルセクション。
-
に行く シークレット タブ。
-
シークレットの作成 (
IOS_DEVELOPMENT_TEAM) プロジェクトの証明書とプロビジョニング プロファイルで発行された iOS 開発チームの ID を使用します。 -
公開に使用する Expo アカウントのユーザー名とパスワードを保存します。
EXPO_USERNAMEとEXPO_PASSWORDシークレット. -
左側で、 構成YAML ナビゲーション メニューから。
-
コピーペースト
envsからbitrise.yml以下をワークフローに追加します。 -
コピーペースト
stepsからbitrise.yml以下をワークフローに追加します。構築された
.ipaと.aabファイルは経由で公開されますBITRISE_IPA_PATHとBITRISE_AAB_PATH環境変数。
bitrise.yml
turtle_build:
envs:
- KEYSTORE_PATH: /tmp/keystore.jks
- KEYSTORE_ALIAS: $BITRISEIO_ANDROID_KEYSTORE_ALIAS
- EXPO_ANDROID_KEYSTORE_PASSWORD: $BITRISEIO_ANDROID_KEYSTORE_PASSWORD
- EXPO_ANDROID_KEY_PASSWORD: $BITRISEIO_ANDROID_KEYSTORE_PRIVATE_KEY_PASSWORD
- PROFILE_PATH: /tmp/profile.mobileprovision
- CERTIFICATE_PATH: /tmp/certificate.p12
- EXPO_IOS_DIST_P12_PASSWORD: $BITRISE_CERTIFICATE_PASSPHRASE
# Define these in your secrets
- IOS_DEVELOPMENT_TEAM: $IOS_DEVELOPMENT_TEAM
- EXPO_USERNAME: $EXPO_USERNAME
- EXPO_PASSWORD: $EXPO_PASSWORD
steps:
- script@1:
title: Install dependencies
inputs:
- content: |-
#!/usr/bin/env bash
set -ex
node --version
fastlane --version
npm install -g turtle-cli
turtle --version
npm install -g expo-cli
expo --version
- file-downloader@1:
title: Download Android Keystore
inputs:
- destination: $KEYSTORE_PATH
- source: $BITRISEIO_ANDROID_KEYSTORE_URL
- file-downloader@1:
title: Download iOS Certificate
inputs:
- destination: $CERTIFICATE_PATH
- source: $BITRISE_CERTIFICATE_URL
- file-downloader@1:
title: Download iOS Provisioning Profile
inputs:
- destination: $PROFILE_PATH
- source: $BITRISE_PROVISION_URL
- npm@1:
title: Install project dependencies
inputs:
- command: install
- set-java-version@1:
title: Set Java version to Java 8
inputs:
- set_java_version: "8"
- script@1:
title: Run Expo publish
inputs:
- content: |-
#!/usr/bin/env bash
set -ex
expo login -u $EXPO_USERNAME -p $EXPO_PASSWORD --non-interactive
expo publish
- script@1:
title: Run Turtle build
inputs:
- content: |-
#!/usr/bin/env bash
set -ex
turtle setup:android
aab_path=$BITRISE_DEPLOY_DIR/expo-project.aab
turtle build:android --type app-bundle --keystore-path $KEYSTORE_PATH --keystore-alias $KEYSTORE_ALIAS -o $aab_path
envman add --key BITRISE_AAB_PATH --value $aab_path
turtle setup:ios
ipa_path=$BITRISE_DEPLOY_DIR/expo-project.ipa
turtle build:ios --team-id $IOS_DEVELOPMENT_TEAM --dist-p12-path $CERTIFICATE_PATH --provisioning-profile-path $PROFILE_PATH -o $ipa_path
envman add --key BITRISE_IPA_PATH --value $ipa_path
(React Native) テストを実行する
説明
たとえば、Jest でテストを実行します。
指示
-
次のいずれかを追加します yarn コマンドを実行する または npm コマンドを実行する プロジェクトのセットアップに基づいて、ワークフローに進みます。
-
をセットする 実行する糸コマンド また 実行する引数を指定した npm コマンド への入力変数
テスト.
bitrise.yml
使用する 糸:
- yarn@0:
inputs:
- command: test
使用する npm:
- npm@1:
inputs:
- command: test
(React Native) 依存関係をインストールする
説明
yarn または npm を使用して依存関係をインストールします。
指示
-
次のいずれかを追加します yarn コマンドを実行する または npm コマンドを実行する プロジェクトのセットアップに基づいて、ワークフローに進みます。
-
をセットする 実行する糸コマンド また 実行する引数を指定した npm コマンド への入力変数
インストール.
bitrise.yml
使用する 糸:
- yarn@0:
inputs:
- command: install
使用する npm:
- npm@1:
inputs:
- command: install
(フラッター) テストを実行する
説明
Flutter プロジェクトで任意のテストを実行します。
指示
-
追加フラッターテストワークフローに進みます。入力変数を設定します。
-
プロジェクトの場所: 例えば、
$BITRISE_FLUTTER_PROJECT_LOCATION. -
ワークフロー エディターまたはステップの説明で、オプションの入力を確認してください。
-
-
を追加Bitrise.io にデプロイする テスト結果をテスト レポート アドオンで利用できるようにする手順。
bitrise.yml
- flutter-test@1:
inputs:
- project_location: "$BITRISE_FLUTTER_PROJECT_LOCATION"
- deploy-to-bitrise-io@2: {}
(Flutter) Flutter SDK をインストール
説明
Flutter の最新の安定版/ベータ版または特定のバージョンをインストールします。
指示
-
追加フラッターのインストールステップ。キャッシュ プル ステップの前にこのステップを使用して、キャッシュが正しく機能することを確認します。
-
最新の安定版/ベータ版または特定のバージョンをインストールします。
-
デフォルトでは、Step は最新の安定バージョンをインストールします。
-
最新のベータ版をインストールするには、Flutter SDK git リポジトリ バージョンの入力を beta に設定します。
-
特定のバージョンをインストールするには、Flutter SDK インストール バンドルの URL 入力を設定します。のリストを見つけることができます Flutter インストール バンドルはこちら.スタック (MacOS または Linux) に基づいてバンドルを設定してください。
ベスト プラクティス
特定のバージョンを使用することをお勧めします。
-
bitrise.yml
特定のバージョン:
---
- flutter-installer@0:
inputs:
- installation_bundle_url: https://storage.googleapis.com/flutter_infra_release/releases/stable/macos/flutter_macos_2.5.3-stable.zip
最新の安定版:
- flutter-installer@0: {}
最新のベータ版:
- flutter-installer@0:
inputs:
- version: beta
(フラッター) Dart アナライザーを実行する
説明
Flutter アプリの Dart アナライザーを実行します。
指示
追加フラッター分析ワークフローに進みます。
bitrise.yml
- flutter-analyze@0:
inputs:
- project_location: $BITRISE_FLUTTER_PROJECT_LOCATION