パーソナル チーム プロファイルを使用した物理 iOS デバイス上でのテスト

Apple Developer Program のメンバーシップに登録していない場合は、パーソナル チーム プロファイルを使用して、物理 iOS デバイス上のアプリケーションをテストできます。
  1. Mac 上で、/Application/Silk/Mobile/common/Appium/node_modules/appium-xcuitestdriver/WebDriverAgent に移動します。
  2. WebDriverAgent.xcodeproj プロジェクトを Xcode で開きます。
  3. TARGETS リストから、WebDriverAgentLib ターゲットを選択します。
    1. General タブをクリックします。
    2. Automatically manage signing を選択します。
    3. 開発チームを選択します。
    Signing Certificate は自動的に選択されます。
  4. TARGETS リストから、WebDriverAgentRunner ターゲットを選択します。
    1. General タブをクリックします。
    2. Automatically manage signing を選択します。
    3. 開発チームを選択します。
    Signing Certificate は自動的に選択されます。
  5. WebDriverAgentRunner ターゲットに対するプロビジョニング プロファイルの作成に Xcode が失敗する場合は、ターゲットのバンドル ID を手動で変更します。
    1. Build Settings タブをクリックします。
    2. Product Bundle Identifier の値を Xcode が受け付ける適切な値に変更します。
      たとえば、Product Bundle Identifiercom.facebook.WebDriverAgentRunner の場合、 io.appium.WebDriverAgentRunnerio.borland.WebDriverAgentRunner などに変更します。
    3. General タブをクリックします。
    これでターゲットにプロビジョニング プロファイルが設定されました。
  6. WebDriverAgent.xcodeproj プロジェクトを保存します。
  7. すべてが期待通り動作することを確認するために、ターミナルを開いてプロジェクトをビルドします。
    xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination 'id=<udid>' test IPHONEOS_DEPLOYMENT_TARGET=10.3
  8. WebDriverAgent アプリの再インストール時に問題が発生する場合は、同じプロビジョニング プロファイルを使ってデバイスに追加のアプリを永続的にインストールします。たとえば、WebDriverAgent Xcode プロジェクトの IntegrationApp をインストールします。
    1. TARGETS リストから、IntegrationApp ターゲットを選択します。
    2. General タブをクリックします。
    3. Automatically manage signing を選択します。
    4. 開発チームを選択します。
  9. IntegrationApp ターゲットに対するプロビジョニング プロファイルの作成に Xcode が失敗する場合は、上記の WebDriverAgentRunner ターゲットに対する対処と同じ手順で、ターゲットのバンドル ID を手動で変更します。
  10. IntegrationApp ターゲットの設定に成功したら、IntegrationApp を物理 iOS デバイスにインストールして実行します。
    1. ターゲットと iOS デバイスを選択します。
    2. Play をクリックします。
アプリのデバイスへのインストールが成功しても、次のようなエラー メッセージがコンソールや Appium ログ ファイルに出力される場合があります。
2017-01-24 09:02:18.358 xcodebuild[30385:339674] Error
Domain=com.apple.platform.iphoneos
Code=-12 "Unable to launch com.apple.test.WebDriverAgentRunner-Runner"
UserInfo={NSLocalizedDescription=Unable to launch com.apple.test.WebDriverAgentRunner-Runner,
NSUnderlyingError=0x7fa839cadc60 {Error Domain=DTXMessage Code=1 "(null)"
UserInfo={DTXExceptionKey=The operation couldn't be completed. Unable to launch
com.apple.test.WebDriverAgentRunner-Runner because it has an invalid code signature,
inadequate entitlements or its profile has not been explicitly trusted by the user. :
Failed to launch process with bundle identifier 'com.apple.test.WebDriverAgentRunner-Runner'}}}
2017-01-24 09:02:18.358 xcodebuild[30385:339674] Error
Domain=IDETestOperationsObserverErrorDomain Code=5 "Early unexpected exit, operation
never finished bootstrapping - no restart will be attempted"
UserInfo={NSLocalizedDescription=Early unexpected exit,
operation never finished bootstrapping - no restart will be attempted}

Testing failed:
Test target WebDriverAgentRunner encountered an error (Early unexpected exit, operation never
finished bootstrapping - no restart will be attempted)
この問題は、開発者がそのデバイスで信頼されていないため発生します。そのデバイス上でアプリを手動で実行しようとすると、信頼されていない開発元 メッセージが表示される場合があります。

デバイス上でこの問題を解決するには、設定 > 一般 > プロファイル または 設定 > 一般 > デバイス管理(デバイスの種類と iOS のバージョンによって異なります)に移動します。そして、開発元を信頼し、アプリの実行を許可します。