Open1

iOSのアプリ内購入のテストにおいてダイアログを無効化できずテストが失敗する

ゆんたんゆんたん

iOSのアプリ内購入のテストを実装する際、ユニットテスト中にダイアログでテストが止まってしまい失敗する。ダイアログを無効化することができない。

SKTestSession のドキュメントによると、 disableDialogs でダイアログを無効化できるとある。
https://developer.apple.com/documentation/storekittest/sktestsession/3579480-disabledialogs

final class OnboardingTests: XCTestCase {
    var session: SKTestSession!

    override func setUpWithError() throws {
        session = try SKTestSession(configurationFileNamed: "TestConfiguration")
        session.disableDialogs = true
        session.clearTransactions()
    }

    func testXXX throws {
        ...
    }
}

ところが、テストを実行するとダイアログが出てきてしまい、テストが止まってしまう。

アプリ内購入のダイアログ