Expo プロジェクトの公開状態を設定する privacy プロパティの挙動

Expo は publish したプロジェクトの公開状態を app.json / app.config.jsprivacy プロパティで設定できる。

{
  "expo": {
    "privacy": "hidden",
...

docs.expo.io

ドキュメントの説明だけでは、具体的に他のユーザーにどう見えるのか分かりづらかったので、 ログインしていない状態で以下のページにアクセスした時の挙動を調査した。

  • プロジェクト一覧: ユーザーのプロジェクト一覧ページ (例: https://expo.io/@chocoby)
  • プロジェクト詳細: ユーザーのプロジェクト詳細ページ (例: https://expo.io/@chocoby/awesome-project)

結果

unlisted (デフォルト) hidden public
プロジェクト一覧 表示されない 表示されない 表示される
プロジェクト詳細 表示される 表示されない 表示される

unlisted について

  • expo init した直後など、privacy プロパティを指定しない場合は unlisted がデフォルトとなる。
  • オーナーのプロジェクト一覧にはプロジェクト名の横に「非公開」のような趣旨のアイコンが表示される。なぜか hidden では表示されない。

f:id:cho_co_by:20200905113325p:plain
アイコンにマウスオーバーしても説明が表示されず分かりづらい。

hidden について

  • プロジェクト詳細に表示されている QR コードを共有するか「Request a link」でメールアドレスや電話番号 *1 にリンクを送ることで Expo Client からプロジェクトを開ける。

f:id:cho_co_by:20200905114920p:plain

  • 送られてくる URL は https://expo.io/--/to-exp/exp%3A%2F%2Fexp.host%2F%40[username]%2F[project-url-slug] という構成なので推測可能なのは注意。
  • ドキュメントには「hidden restricts access to the project page to only the owner and other users that have been granted access. 」と書いているが、どこから他のユーザーを招待するのか分かっていない。

*1:日本国内に送れるかは試していない