2017-12-22 13 views
0

iOSアプリのスクリーンショットを撮ろうとしています。スクリーンショットを撮る前に、アプリを適切な状態にする必要があります。適切な状態にするためには、多くのスワイプが必要です。iOSアプリのUIを「模擬」するにはどうすればよいですか?

私は実際のデバイスを持っていればこれはうまくいきましたが、私はしません。だから私はトラックパッドを使ってシミュレータでスワイプを実行する必要があります。私はこれを非常に難しいと感じ、時には私は正しくスワイプできないので、ジェスチャーは認識されません。

私はプログラムでスワイプを実行するためにUIテストライブラリを使用することを考えました。しかし、私のアプリは実際にゲームであり、ランダムなイベントが発生します。これらのランダムなイベントを処理するためのコードを記述することは時間の問題ではありません。私がスワイプをコントロールしているのが最善です。

私はアプリのUIにボタンを追加することも考えました。彼らが押されると、スワイプがシミュレートされます。次に、トラックパッドでスワイプするのではなく、それらのボタンをクリックするだけです。これは簡単です。しかし、これらのボタンはスクリーンショットに表示されますが、私は明らかにユーザーには見せたくありません。

スワイプジェスチャー認識機能の代わりに、タップジェスチャー認識機能を使用することはできません。これは、4方向すべてでスワイプを検出し、方向によって異なることが必要なためです。

基本的に、シミュレータで「スワイプ」をより簡単に実行するにはどうすればよいですか?私のキーボードのキーを押すことでこれを行うことができれば、それは素晴らしいことでしょうか、それとも私が気づいていないXcodeの機能がありますか?

答えて

0

UIテストを自動化することをお勧めします。

ライブアクションからのテストの記録は、標準のXcode UIテスト機能です。ファストレーンはスクリーンショットのキャプチャも自動化するケーキのアイシングです。

Fastlaneには、自動的にUIテストを実行し、すべてのデバイス解像度でスクリーンショットをキャプチャするツールがあります。 UIテストを記録して再生することで、アクションを記録して再生することもできます。

は、ここでそれをチェックアウト:

Fastlane Screenshot

あなたはFastlaneを使用したくない場合でも、あなたはユニットテストでジェスチャーを記録し、それを一時停止することができます。

+0

私が言ったように、私のアプリはゲームであり、ランダムなことが起こるので、あらかじめ定義されたジェスチャーのセットを使うことはできません。私が支配していれば素晴らしいだろう。 – Sweeper

+0

スクリーンショットを撮るための前提条件は何ですか?画面のさまざまなものをテストすることができます。おそらく自動実行では、rand()と同じシードを使い予測可能にすることをお勧めします。例えば「バッグの男」は登場しなければならないのでしょうか?同じシードを使用する方がより一貫性があります。 –

+0

うーん、それはうまくいくように聞こえるが、私はまだそれを支配したい。私は他の選択肢のためのより多くの答えを待つでしょう。それがなければ私はこれを受け入れるだろう。 – Sweeper

関連する問題