麦芽を支える技術

麦芽(ばくが、英語:malt)とは、麦、特に大麦の種子を発芽させたもので、ビール、ウイスキー、水飴の原料となる。(Wikipediaより)

AppliveryのDistribution sitesで開発中のiOS/Androidアプリをお手軽にテスター配布

前の会社の技術ブログに書いたやつだけど、技術ブログ閉鎖されたっぽいんで、前もってバックアップしといたやつを転記。


アプリ開発でこんなことありませんか?

iOS/Androidアプリの開発をしていて、こういうことってありませんか?ありますよね?今は無くても今後はあるかもしれませんよね?

  • ちょっとしたお試しアプリを作ってみたので、身内の人に使ってもらいたい
  • 外注先からの納品アプリを社内のテスターに配布したい
  • ↑の逆で、現在受託開発をしていて、納品先に開発中のアプリをちょっと使ってもらいたい

ちなみに弊社のアプリ開発では先のエントリで書いた通り、基本的にテスター配布は「Crashlytics Beta」を利用しています。

asmz.hatenablog.jp

なので、「じゃあ、それで開発中のアプリも配布できんじゃん(、何言ってんのこの呑んだくれが!)」と言われそうですが、まぁちょっと落ち着いてください。。。

Crashlyticsでテスター配布するためには、CrashlyticsのSDKをアプリに導入する必要があります。 でも例えば、「ちょっとしたお試しアプリ」だと、まだSDKを組み込む必要があるレベルでなかったり、「外注先からの納品アプリ」とかだと、成果物としてipaファイルで納品されたりしてそもそもSDKを組み込む余地すらない場合もあります。

で、Androidアプリなんかは基本的にapkファイルをメールなり何なりで送れば、受け取った側がそのままインストールできるのでほとんど問題にならないのですが、iOSアプリだとそうはいきません。

  • iOS Dev CenterへのUDID登録は必須
  • ipaファイルをそのまま開いてインストールできず、iTunesからUSB経由で実機インストール
  • Webからダウンロードさせたいなら、規定のplistとそれを参照するhtmlを置いた自前のWebページを用意し、配布したい人に見えるような場所に公開

複数名分の端末を借りてちまちまUSBインストールとかやってられませんし、Web公開もやや手間ですよねー。

そんな時、お手軽に開発中アプリを複数名に配布する方法を今回ご紹介いたします。

Appliveryとは?

今回使うのは「Applivery」というWebサービスです。

www.applivery.com

ググってみると日本語の記事はほとんど当たらないので、日本ではあまり知られてないんじゃないかと思うのですが、これが割と良さげなサービスです。

ざっくりいうと、こんな感じです。

  • 開発中のiOS/Androidアプリのテスター配布ツール
  • 競合サービスとして、Crashlytics Beta、DeployGate

なお、サービス自体は有料ですが無料プランもあり、無料プランには以下のような制約があります。

  • 2アプリまで
  • 1アプリあたり10ビルド(アップロードできるバイナリ数)まで
  • 5つのDistribution sitesまで(Distribution sitesについては次項参照)
  • 2チームまで
  • 500インストールまで

「2アプリまで」あたりは会社の規模によっては引っかかりそうなところではありますが、例えば10ビルドまでと言っても、それを超えた数のバイナリをアップロードしたい場合は古いビルドを捨てれば良いだけなので、小さい規模の開発なら無料プランでもそんなに大きな問題はないんじゃないかと思われます。

AppliveryのDistribution sites機能とは

Appliveryの機能自体は結構いろいろあるんですが、今回ご紹介したいのはそのうちの「Distribution sites」機能です。端的にいうと「開発版アプリ配布サイト」ってことですね。

つまり、Web上に簡単に配布サイトを用意し、配布したい人にそのURLを伝えて適宜ダウンロードしてもらえるようにできる方法の一つが、このAppliveryのDistribution sitesになります。なお、もちろん配布できるのは開発版のアプリに限ります。

Distribution sitesを使うメリットとして、以下が挙げられます。

  • PublicなWebサイトなので、遠隔地の人でも利用可能
  • Appliveryアカウントは配布元ユーザのみ必要で、配布される側はアカウント登録不要
  • 配布サイトにパスワードを設定できるので、Publicとはいえども限られたユーザのみに配布可能

では、具体的な使い方を見ていきましょうー!

(ちなみにAndroidはそんなに手間でもないので以降割愛してますが、このサービス自体はAndroidも対応しています)

使い方

前提

  • お手軽にとは言いつつも、iOSアプリの場合はiOS Dev Centerへのテスター端末のUDID登録の上、正しくCode Signing、Provisioningされたipaファイルが必要です
    • 「それが一番めんどいんじゃ」って話もありますが、そんな時は先のエントリを参考にしてもらえれば...
  • 配布者はAppliveryのアカウント登録を行っておいてください(一般的な操作方法なので、ここでは手順は割愛します)

新規アプリの登録

  • ログイン後に左メニューから「Applications」を選択
  • 画面右の緑ボタン「+New App」をクリック

f:id:asmz0:20170407111746p:plain:w700

  • 以下の画面で適当なApp Nameをつけて「Create」

f:id:asmz0:20170407111940p:plain:w400

これでアプリは用意できました。

f:id:asmz0:20170407112101p:plain:w400

build済ファイルのアップロード

次に配布したいipa、apkファイルをアップロードします。

  • 作成したアプリの「Builds」ボタンをクリック

f:id:asmz0:20170407112101p:plain:w400

  • 画面右の緑ボタン「↑Upload a build」をクリック

f:id:asmz0:20170407112602p:plain:w700

  • 「Select file」でアップロードしたいファイルを選択し、「↑Upload」

f:id:asmz0:20170407112706p:plain:w400

これでアプリのアップロードは完了です。

ちなみに、同じサービスでiOS版・Android版の両方を用意している場合、先に作成した1アプリ内でiOS/Android両方のビルドファイルをアップロードできます。

配布サイト作成

最後にこのアプリ用の配布サイトを作成します。

  • 作成したアプリの「Distribution」ボタンをクリック

f:id:asmz0:20170407112101p:plain:w400

  • 画面右の緑ボタン「+New Site」をクリック

f:id:asmz0:20170407114834p:plain:w700

  • サイト名、サイトURLを記載し、「Create site」

f:id:asmz0:20170407115002p:plain:w400

  • サイトが作成され、以下のようなサイト設定画面が表示されます
  • 「Site URL」が今回作成された配布サイトのURLです
  • 「Distribution method」でサイトの公開方法を選ぶことができます
    • Public: 全世界公開
    • Password protected: サイト自体は全世界公開だが、パスワード認証あり
    • App Members: Appliveryアカウントがあり、このアプリのメンバーに入っている人のみ
  • 「Builds to distribute」で公開したいアプリのバージョンを選択します

f:id:asmz0:20170410091416p:plain:w700

今回は「Password protected」を選択し、適当なパスワードを設定して「Save」を押します。

これでテスター公開準備は完了です!

テスターへ公開

先ほど作成した配布サイトのURLとパスワードをテスターの方に伝えましょう! なお、iOSアプリの場合、テスターの方はUDID登録済iOS端末のSafariでこのURLを開いてもらう必要があります。

以降はテスター側の操作となります。

  • Safariで配布サイトURLを開く
  • パスワード入力画面が表示されるので、入力し「Continue」

f:id:asmz0:20170407132824p:plain:w200

  • ダウンロードできるアプリが表示されるので「↓Install」をタップ

f:id:asmz0:20170407131920p:plain:w200

  • 初回は証明書関連のメッセージが表示されるので、画面の指示に従って操作してください

f:id:asmz0:20170407132127p:plain:w200

このほかにいくつか確認アラートが上がる場合がありますが、了承して問題ありません。

  • 以下の画面が表示されたら、Home画面に戻ってください

f:id:asmz0:20170407132318p:plain:w200

その後Home画面でアプリのダウンロード、インストールが進み、完了すれば利用可能です!

アプリのバージョンアップ対応

上記で説明した「Builds」画面で新しいビルドファイルをアップロードすることで、新しいVerを登録できます。

なお、「Distribution」画面で「Builds to distribute」を「Latest uploaded」に設定しておけば、その後テスターが上記の手順でアプリをダウンロードしに行った際に自動的に最新版のビルドをダウンロードできるようになっていますので、テスターの方へは「最新版アップロードしました!」と伝えるだけで大丈夫です。

f:id:asmz0:20170410091416p:plain:w700

その他機能

今回は利用していませんが、Appliveryには他にも以下のような機能があります。

CI連携

fastlaneやBitrise、Jenkins、TravisCIといった主要なツール・サービスとの連携機能が用意されており、CIでビルドした成果物をそのままAppliveryへアップロードすることなどが可能です。

Slack連携

標準でSlackとの連携機能があり、任意のチャンネルに通知を流すことができます

Feedback & Bugレポート機能

テスターのテストで何らか開発者に報告したい事項があった場合、スクリーンショットを撮って簡単にフィードバックできる機能があるようです(使ってないのでどんなオペレーションなのかわかりませんが)

おわりに

以上、開発中アプリのテスター配布に便利なAppliveryのご紹介でした!Appliveryの回し者でも何でもないですが、気になる方いらっしゃれば是非使ってみてはいかがでしょうか?

なお、Distribution sites以外にもいろいろ便利そうな機能があるようなので、自分もどこかのタイミングでもう少しちゃんと使ってみようかなという気持ちあります。

(ただ、Crashlyticsのクラッシュレポートは現状割と外せないんで、それに引きづられてCrashlytics Betaでのテスター配布も外しづらいんだよなぁ。。)