9

私が開発しているPhoneGap Buildアプリケーションでプッシュ通知を実装する必要があります。PhoneGapを使用したFirebaseプッシュ通知cordova-plugin-fcmを使用したビルド

新しいGoogleサービス、Firebase Cloud Messaging(FCM)の使用に関する多くのドキュメントは見つかりませんでしたが、今使用しているはずのものなので、私の人生を楽にするAPIを探しました。

私が見つかりました:https://www.npmjs.com/package/cordova-plugin-firebase

は、だから私は、私のconfig.xmlに追加:

<plugin name="cordova-plugin-fcm" source="npm" /> 

とGoogle-services.jsonを入れて、私はジップフォルダのルートにhttps://console.firebase.google.com/から作成しました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 

私はルートに「プロジェクト」フォルダを作成し、そこにファイルを置くが、それはどちらも動作しません。誰もが、私はそのファイルを置くか、このさえも使用して他のAPIを実装するための他の方法を持ってきたところ、私はそれを本当に感謝知っている場合

\css 
\img 
\js 
\res (icons and splashscreens) 
index.html 
config.xml 
google-services.json 

現在、私のアプリのフォルダは次のようになります。 私はPhonegap CLIを使ったことが一度もありません。私はいつもPhonegap Buildを使っています。

答えて

8

ファイルはwwwフォルダーの横にある必要がありますが、Phonegap Buildではそのフォルダーの内容のみをアップロードできるため、ファイルをアップロードできません。

幸いにも、あなたができることがあります。 Buildはnpmから直接プラグインをインストールし、プラグインはプロジェクト全体を考えて作業することができるので、ファイル[google-services.jsonGoogleService-Info.plist]をコピーするプラグインが必要です。

ほとんどの作業はすでに完了しています:cordova-plugin-fcm-config

This plugin copies the required FCM configurations in the project root folders and Xcode project. It is used in combination with the great cordova-plugin-fcm plugin.

この目的のために作られたものではありませんが、すばらしく動作します。

複雑さは増していますが、あなたがプラグインをアップロードすることはできませんので、(あなただけの​​3210にそれへの参照を追加することができます)、そしてこのプラグインは、独自のアプリケーションの設定ファイルを必要とする、あなたがする必要があります:へ

  1. クローン/フォークプラグインをあなたの自身のリポジトリ。
  2. 設定ファイルを置き換えます。
  3. ビルド可能な場所にアップロードします。

どこにアップロードしますか?それは難しいかもしれません。インフラストラクチャは、プラグインが一般的な目的であり、各プロジェクトxmlで設定できるというアイデアを基に構築されているので、npmは理にかなっています。しかし、この場合、あなたのプラグインにはあなたのプロジェクトに非常に特殊なデータが含まれているので、npmにアップロードすると、私の意見では名前空間が汚染されます。

私はあなたについてよくわかりませんが、私は有料アカウントを持っているので、自分のリポジトリにプラグインを公開し、プライベートプラグインとして送信します。これは私が推奨するものです。

+0

ありがとう、これは完全に機能しました!まあ、少なくとも私はそれをコンパイルすることができました、今、私はcordova-plugin-fcmプラグインが実際に動作するかどうか見なければなりません。どうもありがとうございました! –

+4

FYIでは、プロジェクトをクローンしてbitbucketの個人用リポジトリで無料でホストすることもできます。設定ファイルにを使用してください – Guy

+1

ありがとうこの答え。 2つのフォローアップ:1)なぜcordova-plugin-fcmにコピー機能だけが含まれていないのですか? 2)同じ方法で設定ファイルの問題を解決する方法がありますか(何とかwwwフォルダ内からコピーします)? – Yaron

4

Cordovaはしばらく前にresource-fileタグを導入し、Phonegap Buildでも動作します。

あなたが

は、このようなconfig.xmlにプロジェクトのルートと使用中resource-fileタグを入れgoogle-services.jsonGoogleService-Info.plistファイルをコピーする代わりにフォークプラグインのことを使用することができますコルドバ-アンドロイド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> 

あなたはまた、私の例では、その場合には、wwwフォルダ内に置くことができますiOSの

<platform name="ios"> 
    <resource-file src="GoogleService-Info.plist" /> 
</platform> 

srcフィールドにファイル名の前にwww/を追加します。

https://cordova.apache.org/docs/en/7.x/config_ref/index.html#resource-file

関連する問題