iOS デバイスでの iOS アプリケーションの実行
IOS モバイル アプリケーション開発 への移動
目次
- 1 iOS デバイス上でのアプリケーション実行手順
- 2 データとキャッシュのフォルダを空の状態にしてアプリケーションを実行する
- 3 トラブルシューティング
- 3.1 'Device connection timeout'(デバイス接続のタイムアウト)が発生したら iOS デバイスを Mac に接続する
- 3.2 'Unable to locate DeviceSupport directory matched with connected device info'(接続したデバイスの情報に一致する DeviceSupport ディレクトリが見つかりません)
- 3.3 iOS デバイスに何も表示されない
- 3.4 アプリケーションがブレークポイントで停止しない
- 3.5 [DCC Error] E2597 NYI lto::archName
- 3.6 [DCC Error] E2597 ld: file was built for armv7(ファイルが armv7 向けにビルドされている)
- 3.7 Xcode と iOS デバイスの同期
- 3.8 アプリケーションのクラッシュ
- 4 関連項目
iOS デバイスで Delphi または C++ iOS アプリケーションを実行するには、その前に以下の手順を問題なく終わらせる必要があります。
- iOS アプリケーション開発用の開発環境を構成する
- アプリケーションの開発用プロビジョニング プロファイルを作成する
- プラットフォーム構成[Development]用に必要な情報を[プロビジョニング]ページに入力する
次の図は iOS 開発プロセス(iOS デバイスへの接続を含む)の概念を示したものです。
iOS デバイス上でのアプリケーション実行手順
- Mac 上でプラットフォーム アシスタントを実行します。
- Mac との接続をテストします([接続プロファイル マネージャ]ページ)。
- Apple 社標準 USB ケーブル(右の画像)で iOS デバイス(iPhone や iPad など)を Mac に接続します。
- メモ: iOS SDK のバージョンが iOS デバイスのバージョンと一致する必要はありません。iOS SDK の最新バージョンを使用して、RAD Studio がサポートする古い iOS バージョンでアプリケーションを実行することができます。iOS SDK のバージョンは、常に最新バージョンを使用する必要があります。
- RAD Studio で以下の作業を行います。
- [プロジェクト マネージャ]で[ターゲット プラットフォーム]ノードを展開し、デバイスのアーキテクチャと一致する iOS デバイス ターゲット プラットフォーム([iOS デバイス - 32 ビット]または[iOS デバイス - 64 ビット])をダブルクリックします。選択したターゲット プラットフォームが太字で表示されます。
- [ターゲット プラットフォーム]ノードで[iOS デバイス]ノード、[構成]ノードと展開し、プラットフォーム構成[Development]をダブルクリックして選択します。選択したプラットフォーム構成が太字で表示されます。
- メモ: プラットフォーム構成が[アドホック]および[アプリケーション ストア]の場合には、Product から直接 iOS デバイスでアプリケーションを実行できません。 App Store 用にビルドしたアプリケーションを実行するには、アプリケーションを App Store へ提出し、そのアプリケーションを App Store からインストールする必要があります。
- アプリケーションを実行します。デバッガは使用しても([実行|実行])使用しなくても([実行|デバッガを使わずに実行])かまいません。
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 を構成するには、新しいバージョンをインストールする前に以下の手順を実施します。
- [実行|実行時引数...]を選択します。
- [パラメータ]フィールドに "-cleaninstall" と入力します。
- [OK]をクリックして変更を保存します。
トラブルシューティング
'Device connection timeout'(デバイス接続のタイムアウト)が発生したら iOS デバイスを Mac に接続する
iOS デバイスが接続されていない場合、iOS デバイス上でアプリケーションを起動しようとすると、次のメッセージが IDE に表示されます。
Device connection timeout
このメッセージが表示されたら、以下の手順を実行してください。
- メッセージを閉じます。
- Apple の USB ケーブル(上で示したもの)を使って iOS デバイスを Mac に接続します。
- アプリケーションをもう一度 IDE から実行します。実行方法は上記の手順を参照してください。
-
- メモ: PAServer コマンドライン ユーティリティの
-devicetimeout=<n>
を使用して、デバイス接続のタイムアウト時間を設定することができます。ただし、デバイス タイムアウトの値を変更しても、iOS デバイスが存在しない場合の問題は解決しません。
- メモ: PAServer コマンドライン ユーティリティの
'Unable to locate DeviceSupport directory matched with connected device info'(接続したデバイスの情報に一致する DeviceSupport ディレクトリが見つかりません)
デバイスの iOS バージョンを最近アップグレードした場合は、iOS デバイスでアプリケーションを実行しようとしたときに上記のエラー メッセージが出力される可能性があります。このメッセージが表示されたら、以下の手順を実行してください。
- メッセージを閉じます。
- Mac で Xcode を開きます。
- [ウインドウ|オーガナイザ]を選択し、お使いのデバイスが 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 デバイスでのデバッグ セッション中にクラッシュした後、次のデバッグ セッションがうまく機能しなくなることがあります。
デバッグ シンボルを使用して実行しているときに、アプリケーションは実行できるが、ブレークポイントで停止しない場合は、次の手順を実行します。
- Mac で Xcode を起動します。
- Xcode で iOS アプリケーションを新規作成します。
- 新しい Xcode iOS アプリケーションが開いたら、[iOS Device]をターゲットとして選択します。
- [Run]をクリックしたままで、表示されるコンテキスト メニューから[Analyze]を選択します。
ここで、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 デバイスを同期させるには、次の手順に従います。
- お使いの iOS デバイスを Mac から取り外します。
- お使いの Mac で Xcode を起動します。
- メイン メニューから[Window| Devices]を選択します。
- お使いの iOS デバイスを Mac に再接続します。
- [Devices]ウィンドウで、その iOS デバイスをウィンドウの左側から選択します。
- Wait for the loading wheel to disappear. そのアイコンが消えたら、Xcode を終了して、アプリケーションをもう一度デバッグしてみることができます。
アプリケーションのクラッシュ
お使いのデバイスに搭載されている iOS のバージョンより新しいバージョンの iOS SDK でアプリケーションをビルドした場合、アプリケーションはその iOS デバイスではクラッシュする可能性があります。たとえば、iOS SDK 9 を使ってアプリケーションをビルドし、そのアプリケーションを iOS 8 搭載のデバイスで実行すると、アプリケーションがクラッシュするおそれがあります。その場合は、RAD Studio で iOS 向けアプリケーションのビルドに使用される iOS SDK を変更します。