Help us understand the problem. What is going on with this article?

【iOSアプリ審査対策】Firebase Hostingを使ってApple審査員とデモ動画を共有する

概要

ようやく開発が完了し、喜び勇んでアプリを審査に提出するも2、3日後あたりに

「New Message from App Store Review Regarding...」の件名メールが。

緊張しながら、Resolution Centerを開いてみると

Guideline 2.1 - Information Neededでのリジェクト!

内容は「デモ動画を共有してくれ」で、少しだけホッとするというケース。あるかと思います。(私はあります)

新規の初回審査には、このアプリの動作を説明するデモ動画を要求されるパターンが多く

本来は審査提出前に予め準備して置いた方がベターだと思います。

Appleの審査チームへのデモ動画の共有は、Google DriveやDropboxでも良いのですが

アプリで既に、Firebaseを使っている場合では

Firebase Hostingを使った方が手っ取り早かったので、その手順のメモです。

環境

  • macOS Catalina 10.15.6
  • npm 6.14.5
  • firebase CLI 8.7.0

Firebase Hositing

Firebase Hosting

Firebase Hosting は、ウェブアプリ、静的コンテンツと動的コンテンツ、マイクロサービス向けの高速で安全性の高いホスティングを提供します。

保存容量や転送容量の制限はありますが、無料で利用出来ます。

Firebase CLIをインストール

Firebase CLI リファレンス

npmを使った方法で進めます。(npmがまだであればまずはそちらから準備)

まず、firebase-toolsをインストールします。(既に環境があればアップデート)

npm install -g firebase-tools

インストール済みでも、↑を実行して最新バージョンにしておく事が推奨されている様です。

無事に完了したら、次はFirebaseにGoogleアカウントでログインします。

Firebaseへのログイン認証

firebase login:ci

を実行すると

visit this URL on this device to log in:
https://accounts.google.com/o/oauth2/auth?client_id=xxxxxxx...

というメッセーが表示され、デフォルトブラウザが起動。

Googleの認証ページが開くので、Firebaseで使用しているアカウントでログイン。

認証が成功した後、ターミナルへ戻るとトークンが表示されています。

✔  Success! Use this token to login on a CI server:

XXXXXXXXXXX(トークン)

このトークンをコピーしておきます。

トークンを環境変数へ保存

毎回、コマンドに指定してもいいのですが面倒なので環境変数にFIREBASE_TOKENとして保存しておきます。

export FIREBASE_TOKEN="コピーしたトークン"

一応、以下で確認

printenv

変数の一覧が表示されます。

.
.
.
FIREBASE_TOKEN=トークン

初期化

まずプロジェクトのディレクトリを作成

mkdir demo-video-hosting

作成したディレクトリに移動し

cd demo-video-hosting

初期化を実行します。

firebase init

を実行すると、以降は対話形式でのプロジェクト設定になります。

こんな感じで進みます(Versionによって変わるかも?)

? Please select an option: Use an existing project → 既存プロジェクトを使用する

? Select a default Firebase project for this directory:xxxxx  → プロジェクトを選択

? What do you want to use as your public directory?  → 公開ディレクトリ設定。publicのまま

? Configure as a single-page app (rewrite all urls to /index.html)? → SPAにするか?今回はしない

全て完了すると、現在のディレクトリに初期ファイルが作成されます。

出来上がった構成

./
├── firebase.json
└── public
    ├── 404.html
    └── index.html

ここで生成されたindex.htmlには、firebaseの初期化コードなども記述されているので

今回は不要ならば消しておく方が良いと思います。
(ファイルは残して中身を空にするなど)

デモ動画をアップロード

初期化時に指定した公開ディレクトリ(そのままであればpublic)

にデモ動画を設置して

firebase deploy --only hosting

を実行。ホスティング環境へデプロイします。

完了すると、メッセージの最後にドメインが表示されます。

Hosting URL: https://xxxx-xxxx-xxxx.web.app

なお、デプロイ前にテストする場合は

firebase serve --only hosting

を実行すると、ローカルで確認が出来ます。

ただ、手元の環境では何故か動画が再生出来ませんでした。
(index.htmlなどは表示される。動画のURLを叩くとクラッシュしてしまう。。)

デモ動画の再生を確認

ブラウザ(Safari)から表示させて、きちんと動画が再生されるか確認します。
(ここ審査員サイドなので大事です)

https://xxxx-xxxx-xxxx.web.app/demo-video.mp4

なお、Firebaseの無料プランでは、月の転送量制限が10GBなので

デモ動画のサイズが大きい場合は注意が必要です。(審査中の一時的な利用であれば問題無いはず)

終わりに

デモ動画のおかげで無事に審査承認され、リリースする事が出来ました。

最後に、目的を果たしたら動画を片付けます。

firebase hosting:disable

これで、アップロードしたファイル一式がホスティング上から削除されます。


Firebase Hosting
Firebase Pricing

bosteri_bon
広告会社でiOSエンジニアしています。
engineerlife
技術力をベースに人生を謳歌する人たちのコミュニティです。
https://community.camp-fire.jp/projects/view/280040
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした