10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

React NativeAdvent Calendar 2017

Day 14

appetize.ioを使ってネイティブアプリのビルドをブラウザ上で動かす

Last updated at Posted at 2017-12-14

appetize.io という、Web上でネイティブアプリを動かせるサービスがある。一時期ReactNativeの公式ドキュメントからもリンクされていたのでご存知の方も多いはず。100分/月・最大同時接続数2までの範囲であれば無料で使うことができる。実際に使ってみるまでの手順を紹介する。

前準備: トークンの取得

https://appetize.io/signup からアカウントを作ったあと、 https://appetize.io/docs#request-api-token にメールアドレスを入力してAPIトークンを申請する。

apkのアップロード

curl https://APITOKEN@api.appetize.io/v1/apps \
  -F "file=@file_to_upload.apk" -F "platform=android"

これだけ。注意点としてはapkは署名されている必要がある。

コード例

あまりにあっさりと終わってしまったので、もう少し現実っぽい例として、commitごとに走るCIから最新版ビルドをappetize.ioにアップロードするようなサンプルを作ってみた。

const fs = require('fs');
const request = require('request');

request.post({
  url: `https://${KEY}@api.appetize.io/v1/apps`,
  formData:  {
    platform: 'android',
    file: fs.createReadStream('android/app/build/outputs/apk/app-release.apk'),
  }
}, function (err, res, body) {
  if (err) {
    throw new Error("Failed to upload apk", err);
  } else {
    console.log(`App is succeesfully uploaded!`);
    console.log(JSON.parse(body).publicURL);
  }
});

のようにapkをアップロードすればよい。例ではAndroidアプリを対象としたが、iOS版でも同様。

実際にアップロードされたapkは以下のURLから試すことができる。
https://appetize.io/app/99dpadte3vjmcn2z0ngqkrhg4g?device=nexus5&scale=75&orientation=portrait&osVersion=7.1

fastlaneとの連携

Android/iOSアプリ開発まわりの自動化ツールfastlaneはappetize.ioにもバッチリ対応していて、こちらを使うのも良さそう。githubでのPRに対応して作成したビルドをappetize.io上で動かすような例がFabricのブログで紹介されていた

10
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?