iOS デバイスでの iOS アプリケーションの実行

提供: RAD Studio
移動先: 案内検索

IOS モバイル アプリケーション開発 への移動

iOS デバイスで Delphi または C++ iOS アプリケーションを実行するには、その前に以下の手順を問題なく終わらせる必要があります。

次の図は iOS 開発プロセス(iOS デバイスへの接続を含む)の概念を示したものです。

Win2Mac2iOSDevice.png

iOS デバイス上でのアプリケーション実行手順

Apple 社製 USB ケーブルで iOS デバイスを Mac に接続する
  1. Mac 上でプラットフォーム アシスタントを実行します。
  2. Mac との接続をテストします([接続プロファイル マネージャ]ページ)。
  3. Apple 社標準 USB ケーブル(右の画像)で iOS デバイス(iPhone や iPad など)を Mac に接続します。
    メモ: iOS SDK のバージョンが iOS デバイスのバージョンと一致する必要はありません。iOS SDK の最新バージョンを使用して、RAD Studio がサポートする古い iOS バージョンでアプリケーションを実行することができます。iOS SDK のバージョンは、常に最新バージョンを使用する必要があります。
  4. RAD Studio で以下の作業を行います。
    1. [プロジェクト マネージャ][ターゲット プラットフォーム]ノードを展開し、デバイスのアーキテクチャと一致する iOS デバイス ターゲット プラットフォーム([iOS デバイス - 32 ビット]または[iOS デバイス - 64 ビット])をダブルクリックします。選択したターゲット プラットフォームが太字で表示されます。
    2. [ターゲット プラットフォーム]ノードで[iOS デバイス]ノード、[構成]ノードと展開し、プラットフォーム構成[Development]をダブルクリックして選択します。選択したプラットフォーム構成が太字で表示されます。
      メモ: プラットフォーム構成が[アドホック]および[アプリケーション ストア]の場合には、Product から直接 iOS デバイスでアプリケーションを実行できません。 App Store 用にビルドしたアプリケーションを実行するには、アプリケーションを App Store へ提出し、そのアプリケーションを App Store からインストールする必要があります。
    3. アプリケーションを実行します。デバッガは使用しても([実行|実行)使用しなくても([実行|デバッガを使わずに実行)かまいません。

RAD Studio によって、IDE に既に追加されている SDK を使ってアプリケーションがビルドされ、選択した iOS デバイス ターゲット プラットフォーム用に構成した接続プロファイルを使って Mac への接続が行われます。また、Mac 上のプラットフォーム アシスタントによって、接続された iOS デバイス上でアプリケーションが起動されます。

メモ:

  • Mac のユーザー アカウントを iOS デバイスでのアプリケーションの実行に初めて使用する場合、Mac から、秘密鍵を使ってアプリケーションに署名することを RAD Studio に許可するかを確認されます。RAD Studio が引き続き iOS デバイス上でアプリケーションを実行できるようにするには、Mac 上でこれに同意する必要があります。
  • iOS デバイスでユーザーのアプリケーションを起動するまでの間、RAD Studio の応答がなくなったようにみえることがありますが、アプリケーションの実行準備をしているだけで問題ありません。

データとキャッシュのフォルダを空の状態にしてアプリケーションを実行する

iOS デバイスでアプリケーションを実行すると、RAD Studio は、アプリケーションを一意に識別できるよう[バージョン情報]オプション ページで定義した CFBundleIdentifier の値を使って、デバイスにアプリケーションをインストールします。デフォルトでは、CFBundleIdentifier の値は "$(ModuleName)"(プロジェクトの名前。"Project1" など)です。

実行したいアプリケーションと同じ CFBundleIdentifier の値を持つアプリケーションが既にインストールされたデバイスでアプリケーションを実行する場合、[実行]コマンドを起動するとアプリケーションが再インストールされますが、更新されるのはアプリケーションの実行可能ファイルだけです。アプリケーションのデータ フォルダとキャッシュ フォルダは更新されません。

[デバッガを使わずに実行]および[実行]のアクションによって、既にインストールされているアプリケーションのバージョンをデータおよびキャッシュのフォルダも含めて完全にアンインストールするよう、RAD Studio を構成するには、新しいバージョンをインストールする前に以下の手順を実施します。

  1. [実行|実行時引数...を選択します。
  2. [パラメータ]フィールドに "-cleaninstall" と入力します。
    RunParametersCleanInstall.png
  3. [OK]をクリックして変更を保存します。

トラブルシューティング

'Device connection timeout'(デバイス接続のタイムアウト)が発生したら iOS デバイスを Mac に接続する

iOS デバイスが接続されていない場合、iOS デバイス上でアプリケーションを起動しようとすると、次のメッセージが IDE に表示されます。

 Device connection timeout

このメッセージが表示されたら、以下の手順を実行してください。

  1. メッセージを閉じます。
  2. Apple の USB ケーブル(上で示したもの)を使って iOS デバイスを Mac に接続します。
  3. アプリケーションをもう一度 IDE から実行します。実行方法は上記の手順を参照してください。
メモ: PAServer コマンドライン ユーティリティの -devicetimeout=<n> を使用して、デバイス接続のタイムアウト時間を設定することができます。ただし、デバイス タイムアウトの値を変更しても、iOS デバイスが存在しない場合の問題は解決しません。

'Unable to locate DeviceSupport directory matched with connected device info'(接続したデバイスの情報に一致する DeviceSupport ディレクトリが見つかりません)

デバイスの iOS バージョンを最近アップグレードした場合は、iOS デバイスでアプリケーションを実行しようとしたときに上記のエラー メッセージが出力される可能性があります。このメッセージが表示されたら、以下の手順を実行してください。

  1. メッセージを閉じます。
  2. Mac で Xcode を開きます。
  3. [ウインドウ|オーガナイザ]を選択し、お使いのデバイスが Xcode で認識されるかどうかを判断して、以下を行います。
    • デバイスが Xcode で認識される場合は、Xcode にデバイスのサポート情報をインポートし直し、RAD Studio からアプリケーションを再度実行してみます。
    • デバイスが Xcode で認識されない場合は、Xcode をアップグレードする必要があります。
      メモ: あるいは、デバイスが Xcode で認識されないが、お使いの Mac の Xcode をアップグレードしたくないという場合には、お使いのデバイスを認識するアップグレード版の Xcode がインストールされている別の Mac にデバイスを接続してみることもできます。お使いのデバイスのサポート情報を新しいバージョンの Xcode で再度インポートしたら、古いバージョンの Xcode で、アップグレードした iOS デバイスも認識されるようになる可能性があります。

iOS デバイスに何も表示されない

この手順に沿って iOS デバイス上でアプリケーションを実行したときに、アプリケーションが iOS デバイスに表示されなければ、以下の点を確認してください。

  • プラットフォーム アシスタントが Mac で動作している必要があります。「Mac でのプラットフォーム アシスタントの実行」を参照してください。
  • RAD Studio で、選択した iOS デバイス ターゲット プラットフォーム([iOS デバイス - 32 ビット]または[iOS デバイス - 64 ビット])に関連付けた接続プロファイルが、ターゲットのプラットフォーム アシスタントのインスタンスに接続されている必要があります。
    • プロジェクトで iOS デバイス ターゲット プラットフォームに関連付けられた接続プロファイルを構成する手順は、「ターゲット プラットフォームをアクティブにして構成する」を参照してください。
    • [ツール|オプション...|環境オプション|接続プロファイル マネージャページで以下を行います。
      • (使用可能な接続プロファイルがプラットフォームごとに一覧表示されている)左側の列で選択した iOS デバイス ターゲット プラットフォームに関連付けられている接続プロファイルを選択します。
      • その接続プロファイルの値、たとえば IP アドレス(Mac の IP アドレスでなければなりません)やポート番号(プラットフォーム アシスタントのポート番号でなければなりません)を確認します。
      • [接続テスト]をクリックして、開発用 PC から Mac 上で稼働しているプラットフォーム アシスタントへの接続が正しく動作しているかを確認します。

アプリケーションがブレークポイントで停止しない

iOS デバイスでのデバッグ セッション中にクラッシュした後、次のデバッグ セッションがうまく機能しなくなることがあります。

デバッグ シンボルを使用して実行しているときに、アプリケーションは実行できるが、ブレークポイントで停止しない場合は、次の手順を実行します。

  1. Mac で Xcode を起動します。
  2. Xcode で iOS アプリケーションを新規作成します。
  3. 新しい Xcode iOS アプリケーションが開いたら、[iOS Device]をターゲットとして選択します。
    XcodeIosDeviceTarget.png
  4. [Run]をクリックしたままで、表示されるコンテキスト メニューから[Analyze]を選択します。
    XcodeAnalize.png

ここで、Xcode を閉じ、引き続き iOS デバイスで、RAD Studio アプリケーションをデバッグできます。

[DCC Error] E2597 NYI lto::archName

ld: file was built for unsupported file format ( <sequence of hexadecimal values> ) which is not the architecture being linked (armv7): C:\Users\<user>\Documents\Embarcadero\Studio\SDKs\iPhoneOS7.1.sdk/usr/lib/libiconv.dylib for architecture armv7

このエラーは、バージョン 7.1 の iOS SDK を使って[iOS デバイス - 32 ビット]ターゲット プラットフォーム向けにアプリケーションをビルドしたときに発生します。 RAD Studio は、8.0 より以前の iOS SDK バージョンをサポートしていません。 最新バージョンの Xcode を Mac にインストールし、サポート対象の iOS SDK を RAD Studio に追加していることを確認してください。

[DCC Error] E2597 ld: file was built for armv7(ファイルが armv7 向けにビルドされている)

[DCC Error] E2597 ld: file was built for armv7 which is not the architecture being linked (arm64): C:\Users\<user>\Documents\Embarcadero\Studio\SDKs\iPhoneOS7.0.sdk/usr/lib/libiconv.dylib for architecture arm64

このエラーは、バージョン 7.0 の iOS SDK を使って[iOS デバイス - 64 ビット]ターゲット プラットフォーム向けにアプリケーションをビルドしたときに発生します。 RAD Studio は、8.0 より以前の iOS SDK バージョンをサポートしていません。 最新バージョンの Xcode を Mac にインストールし、サポート対象の iOS SDK を RAD Studio に追加していることを確認してください。

Xcode と iOS デバイスの同期

Mac にインストールされている Xcode が iOS デバイスの iOS バージョンをサポートしており、かつ、両者が同期していることが必要です。 Mac 内の Xcode とお使いの iOS デバイスを同期させるには、次の手順に従います。

  1. お使いの iOS デバイスを Mac から取り外します。
  2. お使いの Mac で Xcode を起動します。
  3. メイン メニューから[Window| Devices]を選択します。
  4. お使いの iOS デバイスを Mac に再接続します。
  5. [Devices]ウィンドウで、その iOS デバイスをウィンドウの左側から選択します。
  6. Wait for the loading wheel OSX Loader Wheel.png to disappear. そのアイコンが消えたら、Xcode を終了して、アプリケーションをもう一度デバッグしてみることができます。

アプリケーションのクラッシュ

お使いのデバイスに搭載されている iOS のバージョンより新しいバージョンの iOS SDK でアプリケーションをビルドした場合、アプリケーションはその iOS デバイスではクラッシュする可能性があります。たとえば、iOS SDK 9 を使ってアプリケーションをビルドし、そのアプリケーションを iOS 8 搭載のデバイスで実行すると、アプリケーションがクラッシュするおそれがあります。その場合は、RAD Studio で iOS 向けアプリケーションのビルドに使用される iOS SDK を変更します。

関連項目