1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Cordovaプラグインの変数について

Posted at

Monaca で 複数の Cordova プラグインを組み込んだ場合、それぞれの Cordova プラグインに設定されている値によって、ビルドの際に競合が発生する場合があります。

特に、Android Support Libraryや、Google Service 用ライブラリーのバージョン設定は、ビルド時に競合が発生しやすくなります。

variable オプション

Cordova プラグインのインストール方法の説明に --variable のオプションが記載されている場合があります。

以下は、cordova-admob-pro プラグインの Installation に記載されている例です。

cordova plugin add cordova-plugin-admobpro --save --variable PLAY_SERVICES_VERSION=16.0.0

この設定は、PLAY_SERVICES_VERSION の値として 16.0.0 を使用してビルドを行う設定になります。

Monaca で variable オプションを利用する場合

Monaca で variable オプションを利用する場合は、Cordovaプラグイン 画面で 有効 になっている Cordova プラグイン の 設定 画面にある インストールパラメータ へ設定することで、variable オプションを利用することができます。

インストールパラメータ設定例
PLAY_SERVICES_VERSION=16.0.0

preference タグ

variable オプションは、plugin.xml の preference タグを使用することで、利用できるようになります。

以下は、cordova-admob-pro プラグインの plugin.xml の plugin.xml の抜粋です。

<platform name="android">
  <preference name="PLAY_SERVICES_VERSION" default="16.0.0"/>
  <framework src="com.google.android.gms:play-services-ads:$PLAY_SERVICES_VERSION" />
</platform>

preference タグでは、default 属性を設定することで、デフォルト値を設定することができます。

実際に、PLAY_SERVICES_VERSION を使用する場合は、先頭に $ を付け、$PLAY_SERVICES_VERSION のように記述します。

おわりに

よく利用されている Cordova プラグインのドキュメントには、--variable オプションの記載が多く見られます。
ビルドエラーの原因が、variable オプションで指定できる値で回避できる場合も多いため、ビルドエラーが発生した際には、一度、対象の Cordova プラグインのドキュメントに variable オプションの設定が記載されていないか確認してみてください。

variable オプションの記載がない場合でも、Cordova プラグインをダウンロードし、自分で preference タグを設定することで、variable オプションを利用できる Cordova プラグインを作成できます。

一度、チャレンジしてみてください。

関連記事

Cordova プラグインの設定について - Android 編
build.gradle のカスタマイズについて

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?