QuickLook Extensionなどの、App Extensionを含むアプリ開発では、地味だけど地味じゃない「バージョン番号管理」。最初は気をつけていても、気づけばExtensionだけ古いまま。なんてことありませんか?私はその対策として、バージョン番号を外部ファイルで一元管理しています。
変わらない部分は忘れがち
App Extensionを実装した直後は忘れずにバージョン番号を設定できるかもしれません。しかし、アプリのバージョンアップが続き、App Extensionは変更が発生しないことの方が多くなることでしょう。すると、アプリ本体のバージョンは更新しても、App Extensionは手を入れないことが多く、更新を忘れてしまいがちです。
ミスを防ぐには、更新を仕組みに任せるのが一番です。更新を仕組み化させるには、次のような方法があります。
- Xcodeのビルドスクリプトで自動的に書き換える。
- 外部の設定ファイルでバージョン番号を設定する。
外部の設定ファイルで設定する
外部の設定ファイルで設定するには、以下のようにします。
// Current Project Version, CFBundleVersion
APP_VERSION = 1.0.0
// Marketing Version, CFBundleShortVersionString
APP_BUILD = 1.0.0
Xcodeの設定ファイルについては、以下の記事を参考してください。

手動で行うことを減らす工夫が重要
手順書などを用意して、「必ず、バージョン番号を一致させること」などと書いておくということを採用しているプロジェクトもあることでしょう。
しかし、手動で行うことは何度も繰り返す間にミスが起きます。可能ならば自動化するべきです。自動化まで行う必要がないときでも、手順はできるだけ少なくなるように工夫します。今回の設定ファイルを使う方法は、一箇所変更すれば、変更するべき場所が全部変わるようにできます。
Extensionを含むプロジェクトでは、「バージョン番号のずれ」は地味だけどやっかいな問題です。外部ファイルによる管理は、シンプルな工夫でこの問題を防げる良い方法です。