English Japanese
English Japanese

iosplugin

iOS Plugin

1. Overview

T-Plan iOS Pluginは、iOS version 12 and higher上でiOS Mirror接続を使用したiOSアプリケーションのテストを可能にします。これは、自動化したいiOSアプリケーションに追加する必要があるライブラリです。

このライブラリプラグインは、static形式とdynamic形式の両方で提供されます:

  • static library(.a形式)は、Xcodeプロジェクトに追加する必要があり、アプリケーションのソースコードに2行のコードを追加して更新する必要があります。この方法は、アプリケーションのソースコードにアクセスでき、AUTを自社でビルドすることが許可されているQA組織に適しています。また、キーチェーンAPIに依存するアプリケーションにもこの方法が推奨されます。詳細は静的ライブラリのリンクの章を参照してください。

  • dynamic library(.dylib形式)は、.ipa形式の既存のAd-HocまたはEnterpriseアプリケーションに注入できます。この方法は、アプリケーションのソースコードやビルドプロセスにアクセスできないQA組織に適しています。詳細は動的ライブラリのリンクの章を参照してください。


2. 静的ライブラリのリンク

静的ライブラリの使用は簡単です:

  1. 最新の静的ライブラリをダウンロードします

  2. Xcodeとアプリケーションプロジェクトがあるお使いのMac OS Xマシンに解凍します。

  3. XcodeプロジェクトビューでFrameworksフォルダを右クリックし、"Add Files To ..."を選択して、libTPlanTestLib.aファイルを追加します。

  4. アプリケーションデリゲートクラスを見つけます。コードに詳しくない場合は、プロジェクトの最上位ノードを右クリックし、"Find in Selected Groups"を選択して、"didFinishLaunchingWithOptions"または"AppDelegate"を含むクラスを検索してください。見つかったら:

    1. プロジェクトビューでその親フォルダを右クリックし、"Add Files To ..."を選択して、TPlanTestLib.hファイルを追加します。

    2. エディタでアプリデリゲートクラスを開き、ヘッダーにimport句を挿入します:
      #import "TPlanTestLib.h"

    3. didFinishLaunchingWithOptionsメソッドを見つけ、その本体の先頭にsetup_tplan()関数の呼び出しを追加します:
      - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
      {
      setup_tplan();
      <...other code>
      }

  5. アプリケーションをビルドし、通常の方法でデバイス上で起動します。詳細な手順についてはApplication Automationの章を参照してください。


3. 動的ライブラリのリンク

dynamic library packageは、ライブラリバイナリ(.dylib)とinjector scriptで構成されています。これにより、ソースコードを変更したりXcodeで再ビルドしたりすることなく、iOSのAd-Hocアプリケーション(*.ipa)にライブラリを追加できます。動作の流れは次のとおりです:

  1. アプリケーションアーカイブが解凍され、そこにライブラリがコピーされます。

  2. このスクリプトは、アプリケーション実行可能ファイルのMach-Oヘッダーにライブラリを追加します。これにより、アプリケーションの起動時にライブラリが確実に読み込まれます。この操作はアプリケーションコードを含む実行可能ファイルの部分に触れないため、一般的に安全で低侵襲的であると考えられています。

  3. アプリケーションパッケージへのいかなる変更もその署名を無効にするため、アプリケーションはお使いの配布証明書で再署名され、.ipa形式にパックし直されます。


1. 動的リンクを有効にする

動的リンクを有効にするには、Mac OS Xマシンを用意し、以下のように設定します:

  1. 最新のXcodeとCommand Line Toolsがインストールされていることを確認してください。確認方法:

  • Xcode->Preferencesを選択し、Downloadsボタンをクリックします。"Command Line Tools"がComponentsセクションに表示されている場合は、インストールしてください。

要件:
  • Mac OS X 10.7(Mountain Lion)以降。

  • Apple Developer Account。

  • Xcode(v5.x以降が必要)が、Command Line Toolsパッケージとともにインストールされていること。ツールをインストールするには:

  1. Xcodeを起動し、メニューでXcode->Preferencesを選択します。

  2. Downloadsタブに切り替えます。

  3. Installを、Command Line Toolsパッケージの横で選択します。

worddav8b71112fd042577ef8bd3dedbea4ff2c.png


2. ライブラリと環境をセットアップする

動的ライブラリを取得し、環境を確認するには:

  1. 最新の動的ライブラリパッケージをダウンロードします

  2. 名前にスペースを含まないパスのハードドライブに解凍します。

  3. ターミナルを開き、パッケージディレクトリに移動します。

  4. Pythonが正しく設定されているかを確認するには、以下を実行します:

./test_python.sh

  • Pythonが"ImportError: No module named pkg_resources"のようなエラーで失敗する場合は、setuptoolsをインストールしてください:

Sudo curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python

  • Pythonが"pkg_resources.DistributionNotFound: altgraph>=0.10"または"pkg_resources.VersionConflict: altgraph 0.9"のようなエラーで失敗する場合は、altgraphライブラリをアップグレードしてください:

/Library/Frameworks/Python.framework/Versions/2.7/bin/easy_install --upgrade altgraph

  • 別のPythonインスタンスを呼び出したい場合は、test_python.shを編集し、PYTHON変数を目的のpythonコマンドに設定してください。


3. プロビジョニングプロファイルと証明書をセットアップする

プロビジョニングプロファイルを取得し、以下の手順1と2で説明されているとおりに配布証明書をローカルキーチェーンにインポートします。

注: 配布証明書の名前は後で必要になるため、覚えておいてください。Mac OSのApplications->Utilities->Keychain Accessツールからも取得できます。

手順1: プロビジョニングプロファイルを作成します
  1. Provisioning Profilesセクションに切り替えます。

  2. "+"ボタンをクリックして新しいプロファイルを作成します:

    1. "Ad Hoc"プロファイルタイプを選択します。

    2. Xcode iOS Wildcard App IDを選択します。

    3. 適切な配布証明書を選択します。

    4. サーバーの実行を許可するデバイスを選択します。少なくとも1台のデバイスを追加する必要があります。

    5. 例えば"T-Plan Server"のようにプロファイル名を入力し、Generateを選択します。

    6. Downloadを選択して、"T-Plan Server.mobileprovision"ファイルをローカルファイルシステムにダウンロードします。

手順2: 証明書を取得します
  1. Member Center->Certificates, Identifiers & Profilesに移動し、Certificatesリンク(iOS Appsグループ内)を選択します。

  2. iOS(iPhone)配布証明書をダウンロードします。

  3. DownloadsまたはFinderから証明書を開きます。これによりキーチェーンにインポートされます。次にMy Certificates画面(Keychain Accessウィンドウ内)で証明書を確認し、名前をメモします。名前は"iPhone Distribution: <name>"のような形式になっているはずです。

worddav252d5ae24faf734a8d8c7895445ed406.png


環境のセットアップが完了したら、以下を通じてアプリケーションを変更できます:

./add_dylib_and_resign.sh <application>.ipa <profile>.mobileprovision "<distribution_certificate_name>"

スクリプトが正常に実行されると、<application>-modified.ipaという名前の新しいパッケージが作成されます。詳細な手順についてはApplication Automationの章を参照してください。

重要: このプロセスは、Ad-HocまたはEnterprise配布用にビルドされたアプリケーションでのみ機能します。Apple Storeからダウンロードしたアプリケーションは、Appleによって署名されDRMで保護されているため変更できません。スクリプトはそれらを拒否します。