2014年03月03日

Android/iOS向けテストアプリ配信ツール 「EMLauncher」を公開しました

はてなブックマークに登録

先日、TestFlightのAndroidサポート終了、Appleによる買収といったニュースが世間を騒がせましたが、皆さんテストアプリの配信はどうしていますか?
KLabでは自社製のテストアプリ配信ツール「EMLauncher」を使用しているのですが、せっかくなのでOSSとして公開することにしました。

top_pc top_sp
app_pc app_sp

今すぐ試す

今すぐ試したい方のために、セットアップ済みのAWS EC2イメージを用意しました。

インスタンスを起動後、設定ファイルのAWSアカウント情報を編集し、S3のバケットを作成してください。
(設定の詳細はconfigディレクトリのサンプルをご覧ください)

/home/ohoflight/emlauncher/config/emlauncher_config.php
----
(略)
	/** AWSの設定 */
	'aws' => array(
		/**
		 * APIアクセスのためのKeyとSecret.
		 */
		'key' => 'xxxxxxxx',
		'secret' => 'xxxxxxxx',

		/** S3のRegion. */
		'region' => Aws\Common\Enum\Region::TOKYO,

		/** S3のbucket名. 予め作成しておく. */
		'bucket_name' => 'emlauncher',
		),
	),
(略)

設定を終えたらそのインスタンスにwebブラウザでアクセスしてください。ログインページが表示されます。
初期状態ではメールアドレス"test@example.com", パスワード"test"でログインできます。

特徴

どこからでもアクセス可能なwebアプリケーション

専用アプリをインストールすることなく、ブラウザでアクセスするだけでどんな端末からもすぐに使えます。
iOSアプリのOTA(Over The Air)配信にも対応していますし、PCからアクセスすれば apk/ipa ファイルをダウンロードできます。
ただ、TestFlightやDeployGateと違い、端末の詳細な情報やクラッシュレポートは取得できません。

EC2+S3のシンプルな構成

EC2のインスタンス1台とS3のバケット1つで動作します。
KLabではマイクロインスタンス1台で運用していますが、比較的安定して動いています。

Google OAuthによるログイン

KLabではGoogle Appsを利用しており、全社員が独自ドメインのgoogleアカウントをもっています。
このアカウントをログインに利用することで、面倒なユーザ管理をなくしました。
なおKLabでは無効にしていますが、メールアドレスとパスワードによる認証も実装してあります。

TestFlightライクなアップロードAPI

apk/ipaファイルのアップロードはブラウザからだけでなく、TestFlightライクなAPIも用意してあります。
さらにJenkinsプラグインも用意したので、ビルドプロセスに簡単に組み込めます。


それではよりよいアプリ開発ライフを!

(3/11追記) iOS 7.1へのOTAインストールについて

iOS 7.1へのipaのOTAインストールにはSSL通信が必須となりました。
サンプルAMIを利用する場合は、信頼できるSSLサーバ証明書を設置した上で次の設定をしてください。

  • セキュリティグループでHTTPSの接続を許可
  • emlauncher_config.phpenable_https の設定を変更
    $emlauncher_config['ec2']['enable_https'] = true;

なお、自己署名証明書は利用できません。ご注意ください。


@makki_d
makki_d at 13:30│Comments(10)TrackBack(0)tool 

トラックバックURL

この記事へのコメント

1. Posted by Masashi Wada   2014年03月05日 22:30
はじめまして!
とても有用なツール公開感謝しています。

iOSアプリのダウンロードですが、ipaをiPhoneかせダウンロードしようとするとダウンロード失敗となってしまい、何が原因か探すのに困っています。

・Direct Install URLがhttpから始まっているのが気になります。私がOTAでインストールする方法はitms-services://ではじまるものと思っていました。今はhttp経由でもインストールできるのでしょうか?
(同じipaを、自分でitms-services://を使ったインストールは成功しました。)

・iPhoneからアクセスするURLはトップページ以外の違う場所からログインするのでしょうか?

・AndroidのAPKは正常にダウンロードできました。

・環境はテスト公開されているAMIをそのまま使用しました。

・iPhoneのバージョンは iOS 7.0.6です
2. Posted by Masashi Wada   2014年03月10日 02:40
お世話になっています。

先日の書き込みの件、理由がわかりました。
実際にはiPod Touch5genを使っていて、このときiOS7.0.6のユーザエージェントは 〜「iPod Touch;」 〜 と「iPod;」から変化していたため、この環境だとiOS機種として認識していないのが原因でした。

該当の箇所のソースコードにこのユーザエージェントを追加して無事、インストールができることを確認できました。
3. Posted by makki_d   2014年03月10日 22:08
調査・報告ありがとうございます。
こちらで再現できず頭を抱えてたところでした。
ユーザエージェントの判定を早速修正させていただきます。
ありがとうございました。

4. Posted by panzy   2014年03月19日 13:51
早速EMLauncehrを使用させていただいているのですが、
New applicationの登録時に、「AccessDenied」エラーが発生し、登録ができません。

S3用のAPIキー、シークレットキーは正しいものを設定ファイルに書いてあることは確認済みです。

※AWS CLIからはS3へのアップロードは成功しているのでキーが間違っているのは考えにくいです。

ご助言いただけないでしょうか?
5. Posted by makki_d   2014年03月28日 15:31
報告ありがとうございます。

AWSのキー情報のほか、S3のbucket名は確認されましたでしょうか?

もし新たなbucketを作成してconfigにも設定しているのにエラーとなるようでしたら、
エラーログ(/var/log/httpd/error_log)を提供いただけないでしょうか。

よろしくお願いします。
6. Posted by roki   2015年02月13日 19:36
はじめまして。このたびの本家TestFlightのクローズに伴いEMLauncherへの移行を検討している者です。

AWS周りについて不慣れな面が否めないのですが、私もコメントNo.4のpanzyさんと同様の状況に陥っておりまして、対処法をご教示頂けますと幸いです。

httpdのログを確認したところ、「initializing action failed: top/index」との記録がございました。
何卒宜しくお願い申し上げます。
7. Posted by makki_d   2015年02月14日 17:40
AWS S3の利用設定が間違っているのではないでしょうか。
emlauncher_config.php の AWSのキー情報とbucket名を確認してみてください。
特にbucket名は、お使いのアカウントで予めbucketを作成しておく必要があります。

また、エラーログの「initializing action failed: top/index」は、ログインしていないユーザがアクセスしてきた時に出ているものだと思われます。
8. Posted by roki   2015年02月16日 15:06
返信ありがとうございました。
・AWSキー情報
・Bucket作成
・Bucket名設定
上記各点再確認致しましたが、環境通りに設定済みで問題ございませんでした。
他にもお心当たりがございましたらご教示頂けますと幸いです。
宜しくお願い致します。
9. Posted by makki_d   2015年02月17日 14:13
お使いのAWSキーはIAMユーザのものでしょうか。
そのユーザのS3へのアクセス権限は確認されましたか?

手元で試したところ、S3へのアクセス権限を無くしたらAccessDeniedエラーとなりました。
10. Posted by roki   2015年02月18日 19:30
確認しましたところ、ご指摘の通りIAMユーザーのパーミッションに正しくポリシーを適用できていないことが原因でした…。

最終的に、公開頂いているAMIで無事に動作確認をすることができました。度々フォロー頂きありがとうございました。

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 
Blog内検索
Archives
このブログについて
DSASとは、KLab が構築し運用しているコンテンツサービス用のLinuxベースのインフラです。現在5ヶ所のデータセンタにて構築し、運用していますが、我々はDSASをより使いやすく、より安全に、そしてより省力で運用できることを目指して、日々改良に勤しんでいます。
このブログでは、そんな DSAS で使っている技術の紹介や、実験してみた結果の報告、トラブルに巻き込まれた時の経験談など、広く深く、色々な話題を織りまぜて紹介していきたいと思います。
最新コメント