cordova プロジェクトで platform が依存する cordova バージョンを確認する方法

cordova プロジェクトにおいて、個々のプラットフォームがビルドに必要とする cordova のバージョン番号を確認するには、CordovaLib 以下にある VERSION ファイルの中身を参照すれば OK です。

具体的な例として、例えば ios プラットフォームの場合、プロジェクト直下で以下のコマンドを実行すればバージョン番号が確認できます。

$ cat ./platforms/ios/CordovaLib/VERSION 
3.5.0

ちなみに、このバージョン番号は CORDOVA_VERSION_MIN_REQUIRED として CDVAvailability.h 内でも定義されているとおり、特定のプラットフォームにおいてビルドを実行するのに必要となる「最小のバージョン番号」になります。

CORDOVA_VERSION_MAX_REQUIRED という定数は定義されていないため、感覚的にはこれよりも大きい cordova バージョンを使えば問題なさそうですが、実際には cordova バージョンが大きすぎる場合ビルドに失敗することがあります。

もし cordova build が失敗する場合は、このファイルで定義されているバージョン番号と同じか、少しだけ大きいバージョン番号で試すと良いでしょう。

$ grep "CORDOVA_VERSION_MIN_REQUIRED __CORDOVA" ./platforms/ios/CordovaLib/Classes/CDVAvailability.h
    #define CORDOVA_VERSION_MIN_REQUIRED __CORDOVA_3_5_0

このプロジェクトの例では、cordova 3.5.0-0.2.0 〜 3.6.3-0.2.13 では問題ありませんでしたが、cordova 4.0.0 〜 ではビルド NG でした。

バグが出たからと数年前に納品済みのアプリのソース一式を渡されて、ビルドすらできずに戸惑った自分への戒めを含めたメモでした。