iOS向けRPG「ラストログ」の無料体験版をAppClipで実装した話。

 

長くなるので4つにわけることにしました。

1. メインアプリと同じ処理のClipを作ろう!

2. 環境変数を設定して、処理分岐をしよう! ←ココ

3. プロビジョニングの設定をしよう!(予定)

4. いよいよアプリをストアに送信!(予定)

 

前回、同じ動きのアプリができたので、 今回は、環境変数を設定して、

それぞれに部分的に別々の処理をさせて、違うアプリにします。

 

【ざっくり】

プロジェクトのBuild SettingsでGCC_PREFIX_HEADERの設定を、

メインアプリとClip版で別々の設定をすることで、環境変数を定義。

 

---------------------------

#if CLIP_FLAG

〜〜CLIP用の記述〜〜〜

#else

〜〜メイン用の記述〜〜〜

#endif

---------------------------

こんな感じに処理の分岐を実現できる。

 

 

【環境】

MacOS: 11.5

Xcode:12.5.1

言語: Objective-C

 

 

【くわしく】

同じソースを共有することになるので、定数を定義して、

部分的にメインアプリとClipアプリの処理を分けたい。

 

そのための方法として、GCC_PREFIX_HEADERにそれぞれ別のファイルを設定して、

Clipの方にだけ#define文を書いた上で、同じファイル(PrefixHeader.h)を#importするように書く。

 

[LastLog/LastLog_Prefix.pch]

---------------------------

#import "PrefixHeader.h"

---------------------------

 

[Clip/LastLog_Prefix.pch]

---------------------------

#define CLIP_FLAG 1 // ←この定義を参照して分岐する

#import "PrefixHeader.h"

---------------------------

 

 

[どこかのソース]

---------------------------

#if CLIP_FLAG

〜〜CLIP用の記述〜〜〜

#else

〜〜メイン用の記述〜〜〜

#endif

---------------------------

 

↑こんな感じに書きました。

 

これで、ソース内に分岐を書いて、それぞれの処理を別個に記述できるようになります。

 

 

ところで、そもそも、GCC_PREFIX_HEADERの設定って何?ってことですが、

 

この設定をしたファイル(.pch)は、各ソースコードのコンパイル時に最初に組み込まれて、

その後、ソースのコンパイルが走るので、全てのソースに対して共通の設定ができます。

 

設定の仕方は、

 

まず、左カラムの一番上のプロジェクトをクリックして、プロジェクトの設定を開く。

 

Build Settingsタブで、"GCC_PREFIX_HEADER"で検索。

 

ここのターゲットのところの設定にファイルパス(.xcodeprojからの相対パス)を記述。


 

メインとClipに対して、それぞれ設定できるので、それぞれに、

LastLog/LastLog_Prefix.pch、Clip/LastLog_Prefix.pchと設定。

 

これで設定完了です。

 

 

ちなみに、プロジェクトの設定画面での、ターゲットの切り替えは、

 

左カラムを閉じているときは、プルダウンから選択。

 

左カラムを開いているときは、カラムから選択。

  

 

です。

 

 

これで、メイン版とClip版の書き分けができるので、違うところは分岐を入れて、

それぞれの処理を記載していけば、別々のアプリとして作ることができます。

 

ここまでで、アプリ作りの話はおしまいです。

ここからは、リリースに向けての設定まわりのお話です。

 

次回お楽しみに!

 

 

いますぐ「ラストログ」を確認

 

「ラストログ」のはじまりのお話を無料でプレイしよう!

詳しくはこちら