開発中のPhoneGap Buildアプリにプッシュ通知を実装する必要があります。
新しいGoogleサービスであるFirebase Cloud Messaging(FCM)の使用に関するドキュメントはあまり見つかりませんでしたが、これを使用する必要があると思われるので、自分の生活を楽にするAPIを探しました。
私が見つけた: https://www.npmjs.com/package/cordova-plugin-firebase
だから私は私のconfig.xmlに追加しました:
<plugin name="cordova-plugin-fcm" source="npm" />
そして、私が https://console.firebase.google.com/ から作成したgoogle-services.jsonを、Zipフォルダーのルートに配置して、Phonegap Buildにアップロードします。
しかし、私は次のエラーを受け取ります:
Execution failed for task ':processReleaseGoogleServices'.
> File google-services.json is missing. The Google Services Plugin cannot function without it.
Searched Location:
/project/src/release/google-services.json
/project/google-services.json
ルートに「プロジェクト」フォルダーを作成してそこにファイルを配置しましたが、どちらも機能しません。
現在、私のアプリフォルダーは次のようになっています。
\css
\img
\js
\res (icons and splashscreens)
index.html
config.xml
google-services.json
私がそのファイルをどこに置くべきかを知っている人、または他のAPIを使用してこれを実装する他の方法がある場合は、本当に感謝しています。私はPhonegap CLIを使用したことがなく、常にPhonegap Buildを使用してきました。
ファイルはwww
フォルダーの横にある必要があります。問題は、Phonegpビルドでは、そのフォルダーのコンテンツのみをアップロードできるため、ファイルをアップロードできないことです。
幸い、あなたにできることがいくつかあります。 Buildはnpmから直接プラグインをインストールし、プラグインはプロジェクト全体で機能するため、必要なのはファイル[google-services.json
、GoogleService-Info.plist
]をコピーするプラグインです。
ほとんどの作業は既に行われています: cordova-plugin-fcm-config 。
このプラグインは、必要なFCM構成をプロジェクトのルートフォルダーとXcodeプロジェクトにコピーします。それは偉大なcordova-plugin-fcmプラグインと組み合わせて使用されます。
この目的のために作られたわけではありませんが、うまく機能します。
ただし、さらに複雑になります。プラグインをアップロードすることはできず(config.xml
への参照のみを追加できます)、このプラグインは独自のアプリ構成ファイルを必要とするため、次のことを行う必要があります。
どこにアップロードしますか?それは難しいかもしれません。インフラストラクチャは、プラグインは汎用的なものであり、各プロジェクトのxmlで構成できるという考えに基づいて構築されているため、npmは理にかなっています。ただし、この場合、プラグインにはプロジェクトに固有のデータが含まれるため、npmにアップロードすると名前空間が汚染されると思います。
私はあなたのことは知りませんが、有料アカウントを持っているので、自分のリポジトリでプラグインを公開し、プライベートプラグインとして送信します。これは私がお勧めするものです。
Cordovaはresource-file
タグを少し前に導入し、Phonegap Buildでも機能します。
フォークされたプラグインの代わりにそれを使用して、google-services.json
およびGoogleService-Info.plist
ファイルをコピーできます。
次のように、プロジェクトのルートにを置き、config.xmlでresource-file
タグを使用します。
Cordova-Android 7以降を使用している場合:
<platform name="Android">
<resource-file src="google-services.json" target="app/google-services.json" />
</platform>
古いバージョン
<platform name="Android">
<resource-file src="google-services.json" target="google-services.json" />
</platform>
iOS
<platform name="ios">
<resource-file src="GoogleService-Info.plist" />
</platform>
www
フォルダー内に置くこともできます。その場合、私の例では、src
フィールドのファイル名の前にwww/
を追加します。
https://cordova.Apache.org/docs/en/7.x/config_ref/index.html#resource-file
私にとっては、.xcodeprojファイルに移動して、メインインターフェイスをMainViewController.xib
からCDVLaunchScreen.storyboard
に変更する必要がありました。
再構築するとうまくいきました。私のアプリはIonicで構築されており、Ionic Creatorで起動しました。