iOS向けRPG「ラストログ」の無料体験版をAppClipで実装した話。
長くなるので4つにわけることにしました。
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版の書き分けができるので、違うところは分岐を入れて、
それぞれの処理を記載していけば、別々のアプリとして作ることができます。
ここまでで、アプリ作りの話はおしまいです。
ここからは、リリースに向けての設定まわりのお話です。
次回お楽しみに!
「ラストログ」のはじまりのお話を無料でプレイしよう!