HeartCore Roboドキュメント一覧 |
2023-01-04 |
注:
XCode 7 での iOS 9デバイスの自動化について説明した旧マニュアルはこちら(英語)をご覧ください。 |
HeartCore Robo (Desktop)4.3.1以降で、Mac OS X上のXCode 8以降でのiOS 10+デバイスの自動化をサポートしています。
主な機能:MacOS X Catalina以降で導入された新しいセキュリティ制限に関連する問題により、一部バージョンのJavaではLightning USBスクリーンミラーリングがサポートされません。お使いのJavaが対応していない場合は、HeartCore RoboのUI上で通知されます。
セキュリティ上の観点からもJava8、11、17等のJavaLTS版の最新Var.(Java8が最も安定しています)と各種バグフィクスに対応したHeartCore Robo v7以降の組み合わせを推奨します。Arm系CPU(M1Chip等)についてはいくつかの不具合がある可能性があります。 古いバージョンのHeartCore Roboでは、入手困難な古いバージョンのJavaでしか動作しません(OracleのJavaリリースアーカイブはOracleへのユーザー登録が必要になります)。 また、古いバージョンのJavaにおいては「PKIXエラー」が発生してHeartCore Roboが動作しなくなる事例が確認されておりますためサポート対象外とさせていただいております。ご了承ください。
Java Product Line | サポートバージョン(v7以降) | サポートバージョン(v6.3.2以降) | サポートバージョン(v6.2.4以前) |
---|---|---|---|
Java 8(LTS) | update251と262を除くJava8(推奨) | update251と262を除くJava8 | Java8 update242 (1.8.0_242)以前 |
Java 9 | サポート終了 | All supported | All supported |
Java 10 | サポート終了 | All supported | All supported |
Java 11(LTS) | 11.0.7と11.0.8を除く全てのJava11 | 11.0.7と11.0.8を除く全てのJava11 | Java 11.0.6以前 |
Java 12 | サポート終了 | All supported | All supported |
Java 13 | サポート終了 | All supported | - |
Java 14 | サポート終了 | - | - |
Java 15以降 | サポート終了 | All supported | - |
Java 17(LTS)以降 | 17(LTS)〜19対応(v7)、ただしLTS以外は順次サポート終了 | 17(LTS)、18対応(v6.3.5)、ただしLTS以外は順次サポート終了 | - |
※ LTS版においても提供ディストリビューター側のサポート期間終了に伴い順次弊社サポートが対応できない状況になる場合がございます。ご了承ください。
要件:
sudo XCode-select -s /Applications/XCode.app/Contents/Developer
MacOSのバージョンによって表示画面が大きく変更される可能性があることにご注意ください。
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
$ brew install node
$ brew install git
$ brew install carthage
$ ./Scripts/bootstrap.sh
./Scripts/bootstrap.sh
のスクリプトを実行します。依存関係をアップグレードするように求められたら、スクリプトを再実行してください。Scriptsディレクトリ内にbootstrap.shが存在しない場合はこの手順をスキップできます。以下の場合はこの項のXCodeセットアップを繰り返す必要があります:
XCodeのバージョンによって表示画面が大きく変更される可能性があることにご注意ください。
手順:
- トップバーのWebDriverAgentRunnerスキームとターゲットデバイスを選択します。
- WebDriverAgentLibターゲットを選択します。「署名を自動的に管理する」 オプションがオンで、AppleDeveloper登録されている有効なチームが設定されていることを確認します。
- WebDriverAgentRunnerターゲットを選択します。「署名を自動的に管理する」 オプションがオンで、AppleDeveloper登録されている有効なチームが設定されていることを確認します。
WebDriverAgentLibでGeneralタブを選択します。 iOSマシンの動作OSバージョンを設定します。 MacOSのバージョンを設定します。オプションがオンで、AppleDeveloper登録されている有効なチームが設定されていることを確認します。
20xx-xx-xx xx:xx:xx.xxxxx+0100 WebDriverAgentRunner-Runner[785:276949] ServerURLHere->http://192.168.1.3:8100<-ServerURLHere
例:http://192.168.1.3:8100/health
この作業を行った後は、HeartCofre Robo接続前にXCodeを実行する必要はありません。また、WebDriverAgentアプリケーションに関してもターゲットiOSデバイスに事前インストールする必要はありません。HeartCore Roboが接続時にXCode CLIツールを起動し、XCode CLIツールを使用してデバイスへ自動インストールします。上記プロセスは、WDAプロジェクトがXCode CLIツールを使用して構築および実行されるように正しく設定されていることを確認するためにのみ必要です。また、接続開始時間を短縮するコードをコンパイルしてくれます。
ログイン画面で「XCode経由のiOS接続」を選択して接続します。
接続時に以下情報を設定する必要があります:
注:キーボードマッピングは非常に遅く、10分以上かかる場合があります。HeartCore Roboで一度接続した後にキーマップオプションを保存し再接続時に使用すれば、繰り返し接続の際に起こる遅延を回避できます。
接続
テストスクリプトからiOSデバイスに接続する場合は、Connectコマンド(TPRスクリプト)またはconnect()メソッド(Javaテストスクリプト)を使用します。
引数の URL は "xcode://localhost
" の形式で、デバイス名 ("device
") と WebDriverAgent のプロジェクトフォルダへのパス ("project
") を指定する必要があります。"app
" パラメータはオプションです。ローカルに保存された iOS アプリケーション (.ipa) をデバイスにインストールすることができます。その場合に、アプリケーションはWDAのデプロイメントに使用したのと同じ設定(証明書)で署名されている必要があります。
たとえば、次のコマンド/メソッド呼び出しは、最初に検出されたデバイスに接続します:
Connect XCode://localhost device="My iPhone" app="/Users/Joe/WebDriverAgent"
connect("My iPhone",
new
File(
"/Users/Joe/WebDriverAgent"
),
(File) null
,
false
);
TPRテストスクリプトの例:Connect "XCode://localhost?device=My%20iPhone&project=/Users/Joe/WebDriverAgent"
Press "F4"
)。これはv4.4.3からサポートされています。
Gesture
コマンドを使ったモバイル機器のジェスチャー自動化にv6.2以降で対応しました。
HeartCore Roboにおいて、MacとiOS機器はライトニングケーブルでリモート接続されています。その際にはiOS機器のクリップボードに仕様上アクセスができないため、日本語のType
コマンドでのテキスト入力およびPaste
コマンドを利用したコピー&ペーストはできません。英語に関してはスクリーンキーボードの画像認識を利用し、リモート画面上に表示されたスクリーンキーボードを直接タップする形で文字入力を再現しています。
iOSハードウェアキー |
スクリプトキー名称 (アクションの内容) |
キー操作の説明 |
ホームボタン |
'Home'(右マウスクリック) |
ホームボタン動作。長押しとホームボタンのダブルタップはサポートされていません。 |
<画面回転> |
'F4' |
画面を縦から横に回転、逆に戻します(4.4.3以降) |
他のキーはスクリーンキーボードでシミュレートされます。この接続はユーザ操作として機能します。つまり、表示されているキーボードページを切り替え、個々のキー(文字)を画像認識を利用してタップする仕組みになっています。 英語スクリーンキーボードのみの対応です。英文字の入力にはTypeコマンドを使用します。
ルール:Mouse "click"コマンド
などを使用して手動でロボット化することです。com.tplan.iosx.LoadKeyboard
とcom.tplan.iosx.RemapKeyboard
スクリプトを使用してテストスクリプトから修正してください。
iOSキーボードキー (スクリーンキーボード) |
スクリプトキー名称 (アクションの内容) |
キー動作の説明 |
ENTER、GO |
'Enter'(改行) |
Enterキー。 |
DELETE(削除) |
'Backspace'、'Delete' |
バックスペースキー。挿入ポイントの前にある文字を削除します。 |
シフトキー |
'Up'(上矢印) |
シフトキーは、キーボードをシフトした文字(小文字=>大文字など)に切り替えます。 キーボードのページによってラベルや外観が変わります。 接続がそれ自身でスイッチを切り替えるので、シフト文字を入力するためにこのキーを手動で押す必要はありません。 |
キーの切替 |
'Right'(右矢印) |
このキーは、キーボードを次のキーボードページに切り替えます。 キーボードのページによってラベルや外観が変わります。 接続によって別のページから文字が入力される場合、このキーを手動で押す必要はありません。 |
次のキーボード |
'F5' |
キーは次のキーボードロケールに切り替わります。 接続がSafari標準のロケールだけをサポート(マッピング)しているので、ロケールを切り替えるとType、Typelineコマンドが適用できなくなります。 その場合は手動でキーの入力ルーチンを作成する必要があります。入力支援を元に戻すには、基本キーボードロケールに戻す必要があります。 |
ディクテーション |
'F6' |
ディクテーションを開始します。 |
com.tplan.iosx.LoadKeyboard
スクリプトは、キーマップ・ファイルをロードすることができます。com.tplan.iosx.RemapKeyboard
>スクリプトは、デバイスの画面に表示されているキーボードの再マッピングを即座に実行します。com.tplan.iosx.LoadKeyboard
よりかなり時間がかかりますがキーマップファイルを作成する手間を省くことができます。警告:この接続により、キーボードマッピングの処理中に画面の向きが強制的に変更されます。この手順により内蔵のジャイロスコープが作動するため、デバイスを手動で回転させて画面の向きを変更することができなくなります。この機能を再度有効にするには、デバイスをUSBに再接続し、保存されたキーボードを使用して再接続によるプログラムによる向きの変更を回避します。また、画面の回転を完全に無効にすることも可能です。
システムアラート(ポップアップ)を処理する場合、「XCode経由のiOS接続」対応プラグイン v0.5以降を使用してください。
com.tplan.iosx.GetAlert
スクリプトは、アラートが表示されている場合、終了コード0を返します。アラートテキストとボタンは、変数として返されます。com.tplan.iosx.DismissAlert
スクリプトでは、警告を解除・受入やテキスト入力することができます。また、タップするボタン指定も可能です。