iOS 9用iOS 32ビットアプリケーションをXE7およびXE8でビルドする手順

By: Embarcadero Japan

Abstract: RAD Studio XE7およびXE8でiOS 9用 32-bitアプリケーションをビルドする手順を解説します。

この記事は、エンバカデロでシニアプロダクトマネージャを務めるSarina DuPontのブログ記事(http://community.embarcadero.com/blogs/entry/workaround-steps-for-building-ios-32-bit-applications-for-ios-9-with-xe7-and-xe8)の抄訳です。

RAD Studio 10 SeattleではiOS 9上で動作するアプリをビルドすることができます。

iOS SDKに変更があったため、XE7およびXE8でビルドした32ビットiOSアプリケーションはiOS 9上に配置しようとすると問題が発生します。この問題はRAD Studio 10 Seattleでは発生しません。

ここでは、XE7およびXE8でiOS 9向けiOS 32ビットアプリケーションをビルドするためのワークアラウンド手順を示します。

この問題は、iOS 64ビットアプリケーションや、すでに64ビットiOSデバイスに配置済みのXE8でビルドしたユニバーサルバイナリ、そして10 Seattle でビルドしたiOSアプリケーションには影響ありません。

ご存知かもしれませんが、Apple App Storeに提出されたiOS アプリケーションはユニバーサルバイナリ(32ビットおよび64ビットの両方サポート)
または64ビットのみアプリケーションとして提出される必要があります。過去2年間でリリースされたほとんどのiOSデバイスは64ビットデバイスです。

64ビットiOSアプリケーションビルドのサポートをRAD Studio XE8およびRAD Studio 10 Seattleは提供します。

iOS 9用のiOS 32ビットアプリケーションをXE7もしくはXE8がインストールされているWindows環境でビルドする手順は以下のとおりです。
(iOS9デバイスへアプリをUSBケーブルで配置するためには、MacOSX上にXcode7、iOS 8.4SDKがインストールされている必要があります。)

手順1: 既存のiOSプロジェクトをRAD Studio XE7またはXE8で開きます。

手順2: RAD Studioをインストールしたディレクトリ内のsource\fmxディレクトリを開いて、FMX.Context.GLES.iOS.pasユニットを見つけます。 

手順3: 元のソースファイルはそのまま保つように注意しながら、このファイルをあなたのプロジェクトフォルダーにコピーします。

手順4: プロジェクトにこのユニットを追加します。

手順5: IDEのコードエディタでFMX.Context.GLES.iOS.pasを開きます。

手順6: TCustomContextIOS.CreateSharedContextファンクションの中に、FSharedContextフィールドに代入するコード記述があります。これはXE8およびXE7では52行目にあたります。変更前は以下のような記述です:

FSharedContext := TEAGLContext.Wrap(TEAGLContext.Create.initWithAPI(kEAGLRenderingAPIOpenGLES2));

この「Create」 の部分を「Alloc」に変更します。

修正バージョンは以下のようになります:

FSharedContext := TEAGLContext.Wrap(TEAGLContext.Alloc.initWithAPI(kEAGLRenderingAPIOpenGLES2));

手順7: FMX.Context.GLES.iOS.pasファイルを保存して、iOS 8.4 SDKを使ってあなたのマルチデバイスアプリケーションのプロジェクトをリビルドします。iOS 9デバイスも指定可能ではありますが、ここでは必ずiOS 8.4 SDK向けにビルドする必要があります。

メモ: iOS 8.x SDKでプロジェクトをビルドするためには、まずプロジェクト マネージャのターゲットデバイスで「iOS デバイス – 32ビット」で右クリックします。「プロパティ(P)...」を選択します。

「SDK」ドロップダウンメニューで、iOS 8 SDKのもの(例えばiPhoneOS 8.4)を選択します。「OK」をクリックします。 

もしIDEからiOS 8.4 SDKを削除してしまっていたら、Xcode 6.4がインストール済みのMacにIDEから接続して再度これをIDEに追加する必要があります。

プロジェクトマネージャのターゲット プラットフォームの「iOS デバイス – 32ビット」を右クリックして、SDKドロップダウンメニューから「追加(A)...」を選択することにより、IDE経由でSDKを追加できます。

もしMac上にiOS 8 SDKがインストールされていない場合は、developer.apple.com に行ってダウンロードが可能です(有効なApple デベロッパアカウントを持っている必要があります)。


Server Response from: ETNASC03