2017-01-09 15 views
1

TestFlightの内部テストおよび外部テストユーザーは、初めてアプリケーションを実行するときに異なるAPIサーバーを使用します。 TestFlightの「内部テスト」または「外部テスト」アプリとしてインストールされているかどうかをアプリが検出できるかどうか疑問に思っています。アプリがTestFlight経由で「外部テスト」としてインストールされているかどうかを検出することができます

私の次の選択肢は、起動時に別のAPIサーバーを使用するTestflightに送信する別のアプリケーションを構築することでした。しかし、これはより複雑です。

これを実行する理由は、外部テスタにサーバーからの実際のデータを表示させたいからです。アプリの開発中に提出している偽のテストデータではありません。

答えて

0

アプリが「内部テスト」または「外部テスト」としてインストールされたかどうかを検出することはできません。

デフォルトでは、実際のデータを指し示すビルドを作成するが、内部ユーザーにテストデータに切り替えるように教える隠しスイッチがあります。

NSUserDefaultsを使用してスイッチの設定を保存して、内部のユーザーが新しいビルドをインストールするたびに、またはアプリケーションを再起動する必要がなくなるようにすることができます。

実際のユーザーがあなたの秘密スイッチを見つけることを心配している場合は、言うように別のアプリを作成する必要があります。

+0

ありがとう。私はこのオプションも考慮しました。しかし、このアプリケーションでは、私はデータの混乱を危険にさらしたいとは思っていません。 –

1

私の知る限り、アプリケーションを実行している内部の外部テスターを検出することはできません。

しかし、2つの異なるアプリケーションを構築する必要はありません。私はあなたよりも似た要件を持っています:私は内部のテスターがアプリケーションのいくつかの側面を調整する特別なメニューを持っています。たとえば、接続しているサーバーのように、プロダクションデータを邪魔することなくアプリケーションをテストできます。制御された環境でコンテンツを購入する。 Iこれらの設定は、外部のテスターが利用できるようにしたくないので、私は次のようにします。

  • 私は2つの異なるビルド構成、内部テスター(例えばReleaseInternal)のための1つを作成し、残りの他の(Release)私は、2つの異なるスキーマを作成Iは、コードまたは機能
  • の特定のセクションを有効/無効にするプリプロセッサマクロ/スイフトフラグを使用する内部テスタビルド構成(例えばINTERNAL_TESTING
  • にプリプロセッサマクロ/スイフトフラグを定義
  • それぞれ対応するビルド構成を使用します
  • 最後に、fastlaneを使用してアプリケーションのリリースを自動化し、アプリケーションを内部または外部のテスターに​​リリースするかどうかを示すフラグを付けます私は間違いをして間違った人に間違ったバージョンをリリースしません。
関連する問題