1. ホーム
  2. ios

[解決済み] iOSアプリがTestFlightベータ版のインストールを通じて実行されているかどうかを実行時に判断する方法

2022-05-05 21:28:38

質問

TestFlightベータ版(iTunes Connectで申請)とApp Storeの両方でインストールされたアプリケーションを実行時に検出することは可能でしょうか?1つのアプリバンドルを提出し、両方から利用できるようにすることができます。どちらの方法でインストールされたかを検出できるAPIはありますか?または、レシートにそれを判断するための情報が含まれていますか?

解決方法は?

TestFlightベータ版でインストールされたアプリケーションの場合、受信ファイルの名前は StoreKit\sandboxReceipt 通常の StoreKit\receipt . 使用方法 [NSBundle appStoreReceiptURL] をクリックすると、URLの末尾にあるsandboxReceiptを探すことができます。

NSURL *receiptURL = [[NSBundle mainBundle] appStoreReceiptURL];
NSString *receiptURLString = [receiptURL path];
BOOL isRunningTestFlightBeta =  ([receiptURLString rangeOfString:@"sandboxReceipt"].location != NSNotFound);

なお sandboxReceipt は、ローカルでビルドを実行する場合とシミュレータでビルドを実行する場合の受け取りファイルの名前でもあります。

Swiftのバージョンです。

let isTestFlight = Bundle.main.appStoreReceiptURL?.lastPathComponent == "sandboxReceipt"