GitHub

Androidアプリの開始

このガイドでは、以下について説明します。

bitrise.io に Android アプリを追加する

既にBitriseアカウントをお持ちですか?

bitrise.ioにサインアップして、Bitriseアカウントにアクセスできることを確認してください。 GitホスティングサービスのアカウントにBitriseアカウントを接続する方法は、4通りあります。

  1. bitrise.ioにログインします。
  2. ダッシュボードで+ Add new appをクリックします。
  3. Create new AppページのChoose Accountで、アプリを追加するアカウントを選択します。
  4. アプリの公開設定を Private またはPublicに設定し、Nextをクリックします。
  5. リポジトリを持つ Git ホスティングサービスを選択し、リポジトリを選択します。詳細はconnecting your repositoryを参照してください。
  6. リポジトリのアクセスを求めるプロンプトが表示されたら、No, auto-add SSH keyを選択します。詳細はSSH keysを参照してください。
  7. プロジェクトで設定したブランチ名(例えば master など)を入力し、Nextをクリックします。
  8. Bitrise がプロジェクトを検証するのでしばらくお待ちください。設定ファイルに基づいてアプリのセットアップを行います。
    • Bitrise Scanner はデフォルトでプロジェクトのモジュールを選択します。 Moduleリストで選択できるモジュールがさらにある場合は、プロジェクトに最適なモジュールを選択してください。
    • ビルドのバリアントを選択します(APPS & ARTIFACTSにて生成されるすべてのバリアントを選択可能)。テストのバリアントも同様に選択します。
  9. プロンプトが表示されたら Webhook を登録して、コードがリポジトリにプッシュされたときに Bitrise が自動的にビルドを開始できるようにします。 これにより、primaryワークフローでの最初のビルドが開始されます。メッセージをクリックするとビルドページに移動します。 最初のビルドではまだ apk は作成されませんが、ビルドページでプロジェクトのログを確認することができます。

以下は Android primaryワークフローの一例です。

primary:
    steps:
    - activate-ssh-key@4.0.3:
        run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
    - git-clone@4.0.11: {}
    - cache-pull@2.0.1: {}
    - script@1.1.5:
        title: Do anything with Script step
    - install-missing-android-tools@2.2.0:
        inputs:
        - gradlew_path: "$PROJECT_LOCATION/gradlew"
    - android-lint@0.9.4:
        inputs:
        - project_location: "$PROJECT_LOCATION"
        - module: "$MODULE"
        - variant: "$TEST_VARIANT"
    - android-unit-test@0.9.3:
        inputs:
        - project_location: "$PROJECT_LOCATION"
        - module: "$MODULE"
        - variant: "$TEST_VARIANT"
    - deploy-to-bitrise-io@1.3.15: {}
    - cache-push@2.0.5: {}

このワークフローは、あなたのプロジェクトをビルドする Android BuildステップもAndroid Signステップもありません。 したがって、このワークフローはコードレベルでプロジェクトをテストするための出発点に過ぎません。

では、どのようにAndroid deploy ワークフローを行うか見てましょう!

  1. ワークフローエディタでdeployワークフローを選択します。
  2. Code Signingタブに移動します。
  3. キーストアファイルを ANDROID KEYSTORE FILEフィールドにドラッグ&ドロップします。
  4. Keystore passwordKeystore aliasPrivate key passwordフィールドに情報を入力しSave metadataをクリックします。Bitrise にアプリをアップロードする前に Android Studio で生成されたキーストアファイルに含まれているので、これらはすでに手元にあるはずです。キーストアファイルの詳細については、こちらを参照してください。この情報をAndroid Sign step (Android deploy ワークフローのデフォルトに含まれます)タブに追加すると、デフォルトで Android 配布ワークフローに含まれている「署名 APK ステップ」が apk に署名して配布準備が整います。コード署名オプションの詳細については、Android code signing guideを参照してください。
  5. ビルドページに戻り、Start/Schedule a buildをクリックします。
  6. ポップアップウィンドウのBuild configurationタブで deployを選択します。

以下は Android deployワークフローの一例です。

deploy:
    - activate-ssh-key@4.0.3:
        run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
    - git-clone@4.0.11: {}
    - cache-pull@2.0.1: {}
    - script@1.1.5:
        title: Do anything with Script step
    - install-missing-android-tools@2.2.0:
        inputs:
        - gradlew_path: "$PROJECT_LOCATION/gradlew"
    - change-android-versioncode-and-versionname@1.1.1:
        inputs:
        - build_gradle_path: "$PROJECT_LOCATION/$MODULE/build.gradle"
    - android-lint@0.9.4:
        inputs:
        - project_location: "$PROJECT_LOCATION"
        - module: "$MODULE"
        - variant: "$TEST_VARIANT"
    - android-unit-test@0.9.3:
        inputs:
        - project_location: "$PROJECT_LOCATION"
        - module: "$MODULE"
        - variant: "$TEST_VARIANT"
    - android-build@0.9.5:
        inputs:
        - project_location: "$PROJECT_LOCATION"
        - module: "$MODULE"
        - variant: "$BUILD_VARIANT"
    - sign-apk@1.2.3:
        run_if: '{{getenv "BITRISEIO_ANDROID_KEYSTORE_URL" | ne ""}}'
    - deploy-to-bitrise-io@1.3.15:
        inputs:
        - notify_user_groups: testers
    - cache-push@2.0.5: {}

ステップの順序!

  • Gradle の依存関係をキャッシュするためには、ワークフローの最初のステップをBitrise.io Cache:Pullに、最後のステップをBitrise.io Cache:Pushとしてください!
  • Do anything with Scriptステップの直後の、Install missing Android SDK componentsはプロジェクトに不足している可能性がある Android SDK コンポーネントをインストールします。
  • Change Android versionCode and versionNameステップは、Android Buildステップの前に挿入する必要があります。これは正しいバージョンコードとバージョン名のビルドをアップロードするためです。
  • ビルド処理を行う前にコードとデバッグをテストするため、 Android LintAndroid Unit Testステップは Android Buildステップの前に挿入する必要があります。
  • Android SignステップはAndroid Buildステップの後でなければなりません。後者はあなたのプロジェクトをビルドします。 承認されたプロジェクトをアップロードできるように、このステップはすべての展開ステップの前にあることを確認してください。

依存関係

幸運にも、deployワークフローのデフォルトである Android Buildステップは、build.gradleファイルにリストアップしたすべての依存関係を処理し、あなたのプロジェクトにインストールします。

アプリのテスト

前述の Android ワークフローの通り、Android LintAndroid Unit Testのステップがデフォルトでワークフローに含まれています。

UI テストを行う場合、仮想デバイスで Android UI テストを実行するためにbeta Virtual Device Testing for Androidステップを追加してください。 利用可能なテストタイプの中から 1 つを選択してください!

instrumentation を選択した場合は、Instrumentation Testグループ下でTest APK pathを設定することを忘れないでください。

より多くのテストステップの選択

ワークフローの左側にある+記号をクリックし、私たちのコレクションから別の TESTステップを選択してください。

プロジェクトのデプロイ

bitrise.io へのデプロイ

このステップでは、ビルドページにあるAPPS & ARTIFACTSタブに、ビルドに関連するすべての成果物をアップロードします。

ビルドの URL を使用して、生成された apk をチームメンバーと共有できます。 apk がビルドされたことをユーザーグループまたは個人に通知することもできます。

  1. Deploy to bitrise.ioステップに進みます。
  2. Notify: User Rolesで、受け取るロールを付与します。 または通知するユーザの電子メールアドレスをNotify: Emailsフィールドに入力します。 これらの電子メールアドレスをsecret env varsに設定してください!これらの詳細は APPS&ARTIFACTSタブで生成された apk の隣にあるeyeアイコンをクリックするとNotificationsの下で変更することもできます。

マーケットプレイスへのデプロイ

ワークフロー(Android Signステップの後)に Google Play Deployステップを追加すると、署名済み apk があなたの選択したマーケットプレイスにアップロードされます。

  1. Google Play ストアと同期していることを確認してください。以下を参考にしてください。
  2. Bitrise のダッシュボードで、Code Signingに移動し、サービスアカウントの JSON キーをGENERIC FILE STORAGEにアップロードします。
  3. アップロードしたファイルの URL を格納する env キーをコピーします。
    • 例: BITRISEIO_SERVICE_ACCOUNT_JSON_KEY_URL
  4. ワークフローエディタにて Google Play Deployステップに戻ります。
  5. 次のように必要な入力フィールドを入力します。
    • Service Account JSON key file path: このフィールドはアップロードされたサービスアカウントの JSON キーを含む環境変数を指定する必要があります。リモート URL を受け付けます。 例:$BITRISEIO_SERVICE_ACCOUNT_JSON_KEY_URL
    • Package name: あなたの Android アプリのパッケージ名
    • Track: APK を展開するトラック(alpha/beta/rollout/production)

ワークフローに追加できる他のdeployステップ

ワークフローの左側にある+記号をクリックし、コレクションから別のDEPLOYステップを選択します。例えばAppetize.io deployAmazon Device Farm File Directoryです。

これで全部です! ビルドを開始またはスケジュールし、外部のテスターと URL を共有するか、あなたが選んだアプリストアにアプリを配布してください!