SandBoxテスターの作成数の上限について


背景

iOSの課金環境のテストをする上でSandboxテスターが必要となりますが、Sandboxテスターを自動作成したほうが効率が良いケースがあります。
自動作成するにあたりむやみに作り続けるのは良くない+ドキュメントに記載がなかったこともあり、Sandboxテスターの上限数を調べるために以下の確認をしました。

サンプルコード

手始めに2500件のSandboxテスターを作成します。
fastlaneのSpaceshipを使うことでSandboxテスターの作成が簡単に行えるので、以下のようなコードで確認しました。

# Fastfile

default_platform(:ios)
require 'spaceship'

platform :ios do
  lane :create_sandbox_users do
      Spaceship::Tunes.login(ENV["SPACESHIP_USERNAME"], ENV["SPACESHIP_PASSWORD"])

      for i in 1..2500
        email = "#{format('%05d', i)}@test.com"
        puts email
        Spaceship::Tunes::SandboxTester.create!(email: email, password: ENV["SANDBOX_PASSWORD"])
      end
  end
end

実行例

fastlane create_sandbox_users

出力例

2500件のSandboxテスターを作成

Sandboxテスター一覧

AppStoreConnect上では、以下のように表示されます。

疑問点

ここで疑問に思ったのが作成した2500件のアカウント全ては表示されず、[email protected]までしか表示されていません。
(ところどころ表示されていないアカウントがあったのでトータル2000件ほどが表示されています)

検索結果

また、AppStoreConnect上の検索は表示しているものに対してフィルターしているため、検索結果にも表示されません。

Sandboxテスター一覧の確認

そもそも本当に作成がされていないのか以下の手順でSandboxテスター一覧を確認しました。
1. AppStoreConnectにログイン
2. https://appstoreconnect.apple.com/WebObjects/iTunesConnect.woa/ra/users/iap にアクセス

すると、次のようなJSON形式のレスポンスが返却されます。

[email protected]が含まれていることから、AppStoreConnect上には表示されていないだけで作成されていることが確認できます。

iPhoneでログイン

試しに表示されていない[email protected]にiPhone上でログインをしようとすると、問題なくログインできます。

わかったこと

この時点でわかったことをまとめると
1. AppStoreConnect上ではSandboxテスターの表示上限数がある(約2000件)
2. 1.で表示されていなくても、Sandboxテスターの作成が成功していればiPhone上でログイン可能

さらにSandboxテスターを増やしたらどうなるかを確認するために、トータル数10000(2500+7500)のSandboxテスターを作成してみます。

10000件のSandboxテスターを作成

Sandboxテスター一覧

新規で作成したユーザーが表示されていますが、[email protected]で止まっています。

iPhoneでログイン

前回同様に作成が成功したアカウントにはログイン可能です

Sandboxテスター一覧が取得できない

しかし、https://appstoreconnect.apple.com/WebObjects/iTunesConnect.woa/ra/users/iap にアクセスするとユーザー数が多いのが原因か504 Gateway Timeoutによって、Sandboxテスター一覧のレスポンスが取得できませんでした。

まとめ

上記で確認してきたことをまとめると

  • AppStoreConnect上のSandboxテスターには表示上限数がある(自分の試した環境では約2000件だった)
  • 作成が成功したアカウントは、AppStoreConnect上の表示有無によらずiPhone上でログイン可能
  • 一定の作成数を超えると、ユーザー一覧情報が取得できなくなる

作成したアカウントがAppStoreConnect上に表示されていないと混乱を招きやすいので、以下のように運用することをおすすめします。

  • Sandboxテスター数を表示上限数(約2000件)以内に収める
  • 表示上限数を超える場合は、古いSandboxテスターを削除する

関連URL