0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

XCUITestからIAPのシートを操作する

Last updated at Posted at 2021-03-08

Xcode12からStoreKit Configurationが追加され、今まで自前でモックを作成していたようなStoreKit周りの処理を簡単に記述できるようになりました。

XCTestはこれで難なく進めていけるのですが、XCUITestで処理を進めようと思うとAppleの標準シートが表示され、購入への確認操作を要求されます。しかし、インスタンス化したテスト対象のXCUIApplicationからは操作ができません。

この操作は以下のようにSpringBoardを操作することで実行可能です。

let springboardApp = XCUIApplication(bundleIdentifier: "com.apple.springboard")
springboardApp.buttons["Confirm"].tap()

他にも、iCloud連携をしているアプリケーションではアカウントへのログインを要求するダイアログが表示されるのですが、同じようにspringBoardAppの要素にアクセスすることでアクセス可能です。

let signInAlert = springboardApp.alerts.element
signInAlert.buttons["Cancel"].tap()

推測

おそらくですが、XCUITestの実行中に表示されるAppleの標準ダイアログなどは全て上記のSpringBoard経由で操作できるのではと考えています。異なるケースあれば、教えていただけると助かります。

ちなみに、このSpringBoardを操作すれば、アプリ削除の自動テストも実行できるようです。

https://qiita.com/bbq-all-stars/items/be63ecddea15ec7453cc

注意

シミュレーター実行時のみ使えるテクニックなので、実機では動きません。

参照

iPhoneのホーム画面をデバッグしてみよう

一次情報を探したのですが見つからずでした。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?