IOS7より前は、GSSendSystemEvent
およびGSSendEvent
プライベートAPI呼び出しでタッチイベントを挿入することが可能でした。例:
IOS7では、これらの呼び出しはサイレントに失敗するようです。 iOS 7でシステム全体のタッチをシミュレートする で代替案が提案されていますが、ジェイルブレイクされたデバイスでのみ機能します。 https://github.com/kif-framework/KIF 別のオプションのように見えますが、システム全体ではなく、現在のアプリのイベントの挿入のみをサポートしているようです(したがって、挿入できませんでしたたとえば、アプリがバックグラウンドにあるときにイベントをタッチします)。
では、脱獄せずに、iOS7でシステム全体のタッチイベントをどのように注入できますか?
テストシナリオでは、これをシステム全体で行う必要があると思いますか?その場合、デバイス上のテストに役立つJavaScriptベースのツールであるAppleのUI Automationフレームワークが適切に機能する可能性があります。
ホームボタンの押下をシミュレートするようなことはできませんが、次のように、指定した期間、アプリをバックグラウンドに送信できます。
UIATarget.localTarget().deactivateAppForDuration(seconds);
ドキュメントは次のとおりです。
https://developer.Apple.com/library/ios/documentation/DeveloperTools/Reference/UIAutomationRef