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)

page_footer_300rect




page_footer_300rect




-Android
-, ,

執筆者:


comment

メールアドレスが公開されることはありません。

CAPTCHA


関連記事

[Android] パーミッション管理を簡単・簡潔に書けそうなPermissionsDispatcher

1 はじめに2 環境3 導入4 Activityでの実装例5 @RuntimePermissions(必須)6 PermissionsDispatcherに処理を移譲する7 @NeedsPermiss ...

[Android] KotlinでTextToSpeech

1 はじめに2 環境3 MainActivity.kt4 SpeechListener.kt5 activity_main.xml6 さいごに はじめに こんにちは。最近ようやくKotlinに手を付け ...

【Androidマテリアル】Ripple Effect

1 はじめに2 Ripple Effectとは3 設定方法4 カスタマイズ5 さいごに はじめに こんにちは、ソニーから新Aiboが発表されましたね。個人的には欲しいと思っているのですが、最近Goog ...

Kotlinをはじめよう〜コレクションなど〜

1 はじめに2 配列3 レンジ4 コレクション(リスト)5 コレクション(セット)6 コレクション(マップ)7 コレクションまとめ8 さいごに9 おすすめ書籍 はじめに 前回のKotlin基本文法編に ...

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

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

フォロー

follow us in feedly

page_side_300rect

2019年4月
« 3月 5月 »
 123456
78910111213
14151617181920
21222324252627
282930 

アプリ情報

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