1つのプロジェクトから2つのバージョンを作るときのまとめ

有料版の他に無料版を作るときは、それぞれのXcodeプロジェクトを作るのではなく、1つのプロジェクトから2バージョン作れたほうが、管理が楽!
なのでそのやり方を簡単にまとめておく(内容の正確さは保証しないので注意。徐々に訂正していくノリです)。

・前知識
「あるアプリとあるアプリが別のアプリである」とみなす条件は「バンドル名」と「バンドルidentifier」が別であることらしい。
バンドル名:作成されるアプリは実際はファイルが階層構造になっている。その一番親のフォルダの名前。
バンドルidentifier:com.apple.enjoybikeのような他とかぶらないようにアプリに付けられる識別子

・ターゲット情報の複製
ターゲット情報とは実行ファイル(ユーザーのiPhoneにダウンロードされるファイル)をどう作成するかの情報。これを有料版と無料版でわけておく。
複製のやり方はXcodeでプロジェクトを開いて、左の「ターゲット」の項目にあるものを右クリックから複製し、新たな名前(◯◯Liteなど)をつける

・プロダクト名の指定
プロダクト名とはアプリの名前。
新たに作成したターゲットで右クリックして、「情報を見る」を選択。「ビルド」というタブをクリックし、出てきたリストの中の「プロダクト」の欄。ここを変更する。注意、Product Nameがターゲット名と同じになる設定になっていて、変更する必要がない場合は変更しなくてもいい。

・info.plist
バンドルidentifierを指定するのがinfo.plistというものです。有料版と無料版で別のバンドルidentifierを指定してやる必要があります。さきほどターゲットを複製したときにinfo.plistも新しいのが作成されし、Xcodeに追加されているのでそれを使用したい名前に変更。その中のバンドルidentifierも変更しておく。
その後、作成したターゲットの「情報を見る」を選択し、「ビルド」タブをクリックし、「info.plistファイル」の項目の名前も変更する。

ソースコードの中でバージョンによって走らせる部分を制御すると思います。
やり方をLITEバージョンの例でいうと、LITEバージョン用のターゲットの「情報を見る」より「プリプロセッサマクロ」の項目(探すのが少し大変)にLITEといれておくと、
#ifdef LITE
LITEバージョンの処理
#elseif
通常バージョンの処理
#endif
と走る部分を制御出来ます。

・アイコンやデフォルト画像
無料版用のアイコンをicon.png(必要な場合はicon@2x.pngも)やdefault.png(default@2x.png)としてXcodeに追加します。このときResourcesフォルダの下にターゲット毎にフォルダを作り、そのターゲットで使う画像を入れておきます。そして、それぞれの画像を右クリック→「情報をみる」よりその画像を使うターゲットを選択しておくと、各ターゲットが実行ファイルを作るときに必要なファイルを判断します。両方共default.pngでは都合が悪い場合、plistのLaunch Imageのところで名前を変更します。

・ビルド
Xcodeの上の方にターゲットを選択する箇所があります。そこでビルドしたいターゲットを指定して、ビルドしてやります。

・そのた
iTunes Store用の512画像、スクリーンショットも必要であれば用意します。

コメント

このブログの人気の投稿

Swiftのコンパイルエラー寄せ集め

コンパイルエラー覚え書き(Objective-C)

AVAudioSession細かいことまとめ(late 2014)