Android

Pushwoosh UnityでのFCM移行

投稿日:

はじめに

みなさん、新年度はいかがですか?
様々な変化があり、何かと忙しい時期ですね。
さて、変化といえば、今月11日でGCMが終了しました。FCMトークンとGCMトークンは互換性があるため、サーバサイドでFCM対応できていれば、4/11以降もプッシュ通知を送ることが可能な場合があるようですが、アプリがGCMに接続していると新規トークンの発行が出来なくなる可能性があります。
今回は、UnityでPushwooshを使用している方向けに、FCM移行について説明します。AndroidネイティブでAWS SNSを使用している方は以前の記事をご覧ください。

Firebaseプロジェクトの引き継ぎ

FCM対応するには、まずFirebaseプロジェクトが必要になります。GCP上でGCMが設定されているGoogleアカウントにログインした状態で、Firebaseコンソールにアクセスします。
「プロジェクトの新規作成」を選択し、「プロジェクト名」右側の「▼」をクリックすると、引き継ぎ元GCPプロジェクトを選択できるので、引き継ぎたいGCMが設定されている物を選択します。

PushwooshのAPIキーの差し替え

Pushwooshに登録されているGCM時代のAPIキーは、FCMに引き継がれているため、変更しなくとも引き続き使用可能ですが、新しいサーバーキーに差し替えることが推奨されているため、ついでに差し替えておきましょう。

FCMサーバーキーの取得

Firebaseで引き継がれたプロジェクトを開き、歯車アイコンから「プロジェクトの設定」をクリックします。
クラウドメッセージングを開き、「サーバーキー」をコピーします。

google-services.jsonのダウンロード

Unityアプリに組み込む必要があるため、google-services.jsonをあらかじめダウンロードしておきましょう。
全般を開き、「最新の構成ファイルをダウンロード」の部分から、google-services.jsonをダウンロードできます。

Pushwooshへの登録

Pushwooshで移行したいApplicationを開き、「Configure」を開きます。
Androidの「Edit」をクリックし、「API Key」に先ほどのサーバーキーを貼り付けます。
「Sender ID」は変わっていないことを確認しておきましょう。(変わっている場合は、Firebaseプロジェクトが引き継げていない可能性があるため、もう一度引き継ぎを確認してください。)

Pushwoosh Unity Frameworkのアップデート

バージョン5.12.0以前を利用している場合は、GCMに接続しているため、最新版にアップデートする必要があります。

古いFrameworkの削除

GCM時代のFrameworkには、Google Play Service関係のバイナリが内包されていますが、FCMに対応したFrameworkには不要なので、削除します。
ただし、他から依存している場合は、注意深く削除してください。
以下に古いFrameworkのファイルを列挙します。

  • Editor
    • PushwooshBuildManager.cs
  • Plugins
    • Android
      • assets
        • api_key.txt
        • play-services-*
        • pushwoosh-*
        • support-*
        • PushwooshAndroidManifest.xml
    • iOS
      • PushNotificationManager.h
      • Pushwoosh.a
      • UnityRuntime.m
    • WP8
      • Newtonsoft.json.dll
      • PushSDK.dll
      • PushwooshForWindowsPhone.dll
    • WSA
      • Newtonsoft.json.dll
      • PushSDK.winmd
      • PushwooshForWindows.dll
  • Pushwoosh
    • 全ファイル

最新版Frameworkの導入

以下から最新版のunitypackageをダウンロードし、importします。
https://github.com/Pushwoosh/pushwoosh-unity/releases

google-services.jsonの配置

Assetsフォルダ配下に、先ほどダウンロードしたgoogle-services.jsonを配置します。

以上で完了です。実機に転送して、プッシュ通知が届くことを確認しましょう。

Androidビルドが通らない場合

Pushwoosh Frameworkのアップデートでは、ネイティブプラグインの差し替えが発生するため、ビルド時エラーが発生する場合があります。
そんな時の対処法を紹介します。

Cause: Dex cannot parse version 52 byte code.

Java 1.7でビルドしている場合に発生します。PushwooshはJava 1.8でビルドされているためです。
できれば、最新のUnityにバージョンアップしましょう。今すぐバージョンが難しい場合は、Java 1.8に設定変更することで、ビルドを通すことができます。

build.gradleのテンプレート編集

Unityでは、build.gradleファイルがテンプレート化されており、いくつかの設定項目は変数で置き換えることができるようになっています。さらに、このテンプレートを編集することも可能で、今回はテンプレートを編集することで、build.gradleの設定を変更していきます。

まず、Player Settingsを開き、Publishing Settings > Build Systemが「Gradle」になっていることを確認します。
次に、「Custom Gradle Template」にチェックを入れると、「Assets/Plutins/Android/mainTemplate.gradle」が生成されます。
このファイルがあると、Unityはこちらのテンプレートを優先的に参照するようになります。

gradleバージョンを3.x.xに変更

古いUnityでは、Gradleの2.x.xを使用していますが、Java 1.8に対応させるには、3.x.xが必要なので、変更します。
また、Gradle 3.x.xから、mavenリポジトリが変更となっているため、リポジトリも合わせて追記します。

Java 1.8の設定

Pushwooshに合わせて、アプリ全体をJava 1.8に変更するため、設定変更します。

Error:Minimum supported Gradle version is…

このエラーの時は、gradle-wrapper.propertiesのdistributionUrlを変更し、指定のGradleをダウンロード・インストールする必要がありますが、UnityでBuild and Runする場合、gradle-wrapper.propertiesを変更することができません。
この場合は、一旦Android用ソースをExportし、Android Studioでビルドする必要があります。

まず、Build and Runではなく、Android用ソースをExportするために、Build Settingsを開き、Android > Export Projectにチェックを入れます。
そして、「Export」ボタンを押すと、ソースが書き出されます。

書き出されたソースのフォルダをAndroid Studioで開き、Runボタンを押せばそのままビルドが通ります。
(Gradleの依存関係は、Android Studioで自動的に解消されます。)

さいごに

プッシュ通知はユーザを繫ぎ止める大事な機能です。しっかり対応して、引き続きプッシュ通知機能を使えるように、早急にアップデートしましょう!

おすすめ書籍

Unityの教科書 Unity 2018完全対応版 2D&3Dスマートフォンゲーム入門講座 (Entertainment&IDEA) Unityゲーム プログラミング・バイブル Unity2018入門 最新開発環境による簡単3D&2Dゲーム制作 (Entertainment&IDEA)

blog-page_footer_336




blog-page_footer_336




-Android
-, ,

執筆者:

免責事項

このブログは、記事上部に記載のある投稿日時点の一般的な情報を提供するものであり、投資等の勧誘・法的・税務上の助言を提供するものではありません。仮想通貨の投資・損益計算は複雑であり、個々の取引状況や法律の変更によって異なる可能性があります。ブログに記載された情報は参考程度のものであり、特定の状況に基づいた行動の決定には専門家の助言を求めることをお勧めします。当ブログの情報に基づいた行動に関連して生じた損失やリスクについて、筆者は責任を負いかねます。最新の法律や税務情報を確認し、必要に応じて専門家に相談することをお勧めします。


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

[Android] Firebase ML Kit勉強会に参加してきました

1 はじめに2 Firebase ML Kitとは3 準備するもの4 動かすまでの手順4.1 gradleのsyncがうまくいかない場合5 テキスト認識を試してみる6 画像のラベル付けを試してみる7 ...

Flutterでテストコードを書こう! 単体テスト・Widgetテスト・インテグレーションテスト

1 はじめに2 単体テスト2.1 testパッケージの利用2.2 テストの書き方2.3 テストの実行2.4 モック化2.4.1 mockitoの導入2.4.2 メソッドのモック化3 Widgetテスト ...

SafetyNet Attestation APIでRoot化チェック【基本的な検証編】

1 はじめに2 SafetyNet Attestation APIとは2.1 注意点2.1.1 レスポンス結果はアプリ内で判定しない2.1.2 JWSのキーチェーンをチェックする2.1.3 レスポンス ...

Kotlin MPAndroidChartライブラリを使い移動平均線を描画してみる。

1 はじめに2 MPAndroidChartライブラリについて2.1 ライブラリの導入2.2 描画の準備3 折れ線グラフを描画する3.1 LineChartの設定3.2 LineChart用のデータ作 ...

Android 11でdeprecatedになったAsyncTask対応Java編

1 はじめに2 基本的な対応2.1 対応後のサンプル2.2 cancelとonCancelled3 execute().get()への対応4 最後に5 おすすめ書籍 はじめに タイトルの通りAndro ...

フォロー

blog-page_side_responsive

2019年4月
 123456
78910111213
14151617181920
21222324252627
282930  

アプリ情報

私たちは無料アプリもリリースしています、ぜひご覧ください。 下記のアイコンから無料でダウンロードできます。