NIFCLOUD-mbaas / UserCommunity

ニフクラ mobile backend ユーザーコミュニティ
https://mbaas.nifcloud.com/
81 stars 18 forks source link

NIFCLOUD-mbaas/MonacaPushAppで デバッガーが動作しません。 #1257

Closed hoppyhajime closed 2 years ago

hoppyhajime commented 2 years ago

症状

デバッグビルドしたアプリが起動しません。 起動時デバッガー側に以下のメッセージがでます。

デバッガーに含まれていないプラグインがあります  plugin.push.nifcloud

AppLogは下記の通りです。 UncaughtTypeError:Cannot read property 'setDeviceToken' of undefined www/index.html:14

IDE側のビルド結果は成功で  debug/Log/Warning/Errorいずれのメッセージもでてません。

プロジェクト Nifty公式の手順に従ってサンプルプロジェクトを インポートして使用しています。

https://github.com/NIFCloud-mbaas/MonacaPushApp

確認&試したことは下記です。

Firebaseでのプロジェクト作成、アプリの設定済み google-services.json をMonacaのトップレベルに配置 NFMB上でFirebaseの秘密鍵jsonを設定済み Monacaプロジェクトはインポートしたままで、固有コードは入れていない状態

環境 MONACA FREEプラン MONACA Cordovaプラグイン CLIバージョン: 10.0.0  当初9でしたが 動作しないので上げてみました。 js/css ncmb 3.1.1

Cordovaプラグイン ncmb-push-monaca-plugin@3.0.7

Monaca Cordova5.2アップデートでwindow.NCMB.monaca.setDeviceTokenがエラーになる#312 を参考に loader.jsより前にincludeする 以下のように修正しました。

追加★

スキルが低いこと並びに 記載の通りFREEプランのため検証に時間がかかったりしますので アドバイスを即テストし報告できない場合がありますが ご容赦ください。

アドバイスよろしくお願いします。

goofmint commented 2 years ago
UncaughtTypeError:Cannot read property 'setDeviceToken' of undefined

というエラーが出るのは ncmb-push-monaca-plugin が正しくインストールされていない可能性が高いです。プッシュ通知を送るだけであれば、js/css側のncmbは不要なので、一旦これを削除して試してみてください。万が一として <script src="SDKのパス/ncmb.min.js"></script> が原因の可能性がありますので。

hoppyhajime commented 2 years ago

アドバイスに基づきテストしました。  結果 メッセージは変わりましたがNGでした。

他に思い当たるところございませんでしょうか。

結果 起動時デバッガー側に以下のメッセージがでます。 デバッガーに含まれていないプラグインがあります  plugin.push.nifcloud

AppLogならびにIDEでは下記の通りです。 UncaughtTypeError:Cannot read property 'monaca' of undefined www/index.html:13

作業 1.js/css のncmbを削除。 2.index.html 上のを削除。

なお、以降 以下に戻しましたが 結果はNGで 内容は前回に戻りました。  1.js/css のncmb 3.1.1を追加。 2.index.html 上のを復活。

結果 デバッガーに含まれていないプラグインがあります  plugin.push.nifcloud

AppLog IDEは下記の通りです。 UncaughtTypeError:Cannot read property 'setDeviceToken' of undefined www/index.html:14

なお、index.htmlをIDE上で修正し画面上のシュミレータをリロードしても 変化しないので 修正作業は効いていない感じですね。 

goofmint commented 2 years ago

状態としては、NCMBのプッシュ通知プラグインが入っていない(または正しく動作していない状態)かと思います。インストール周りを確認いただくのが良いかなと。

起動時デバッガー側に以下のメッセージがでます。
デバッガーに含まれていないプラグインがあります 
plugin.push.nifcloud

と出るので、これを解消しないといけません。

motoyama-yusuke commented 2 years ago

デバッグビルドでは以下のようなメッセージは出なかったように思います。

デバッガーに含まれていないプラグインがあります 
plugin.push.nifcloud

カスタムビルドデバッガーでビルドしてませんか?

以下リンクにあるように、カスタムビルドデバッガーではPUSHは使えないと思ってます。 使えるなら、私も方法知りたい。

https://docs.monaca.io/ja/debugger/manual/installation/debugger_android/

hoppyhajime commented 2 years ago

素人なので話1/1000くらいですが cordova10への更新がおかしいように見えます。

本件と別の認証demoアプリで 各々cordova cli version 9 →10に更新する際の 明細を確認しましたところ差異がありました。

詳細確認用は同じurl https://docs.monaca.io/ja/release_notes/20201119_cordova10/ ですが 記載されているpluginの明細が異なっていました。

このため MonacaPushAppの node_modules下で 各package.jsonを見ましたが cordva9→10にあがる時 以下のようにバージョンあがるはずが なっていないようです。   cordva-plugin-splashscreen 5.0.2 6.0.0? cordva-plugin-whitelist 1.3.3 1.3.4? monaca-plugin-monaca-core 3.3.0 3.3.1? ncmb-push-monaca-plugin 3.0.7 3.1.0?

素人なのでこの確認自体 有効なのかの判断できませんし 有効としてどう対処していいのか理解できませんが 取り急ぎ報告します。

なお、認証demoアプリのcordova9→10更新明細は以下です。  cordva-plugin-splashscreen 5.0.2 6.0.0 cordva-plugin-whitelist 1.3.3 1.3.4 monaca-plugin-backend 2.1.1 2.1.2 上記についてcordovaをあげてバージョン情報が更新されるのかは確認していません。

また、改めて 最初からやり直して設定しビルドはすべて 「デバッグビルド」で  以下の内容でした。

リトライ結果 リトライ1

設定 cordova 9.0 js/css  ncmb3.0.0

結果 警告 プロジェクトとデバッガーのバージョンが一致していません。 一部のプログラムが実行できない可能性があります。 プロジェクト 9.0 デバッガー 10.0

デバッガーに含まれていないプラグインがあります  plugin.push.nifcloud cordova.plugin-wkwebview-engine

AppLog IDEは下記の通りです。 UncaughtTypeError:Cannot read property 'setDeviceToken' of undefined www/index.html:13

リトライ2 設定 cordova 10.0 js/css  ncmb3.1.1

結果

デバッガーに含まれていないプラグインがあります  plugin.push.nifcloud

AppLog IDEは下記の通りです。 UncaughtTypeError:Cannot read property 'setDeviceToken' of undefined www/index.html:13

10にして cordova.plugin-wkwebview-engineがなくなったのは正しいように見えます。

アドバイス何卒よろしくお願い申し上げます。

goofmint commented 2 years ago
警告 プロジェクトとデバッガーのバージョンが一致していません。
一部のプログラムが実行できない可能性があります。
プロジェクト 9.0
デバッガー 10.0

このメッセージが出るのはカスタムデバッガーな気がしますね…。デバッグビルドで行われているのでしょうか?

hoppyhajime commented 2 years ago

前回の報告が分かりにくかったようです。 バージョンの差異の指摘がでるのは cordova CLI 9の時点です。 10にあげてからは出ません。

ただいま再現テストして 上記の通りでした。

なお 10にあげてからのアラーム内容は以前同様 デバッガーに含まれていないプラグインがあります。 plugin.push.nifcloud

Uncaught TypeError: Cannot read property 'setDeviceToken' of undefined www/index.html:13

ビルド環境ですが デバッグビルドです。

画面上から 1.androidアプリのビルド  2.薄青文字のデバッグビルド 下から山 3.向かって左のカスタムデバッグが黒文字、右のデバッグビルドが薄青文字 

デバッグビルドだと思います。

hoppyhajime commented 2 years ago

Monaca Debuggerを確認しましたが 単純に やっぱりcordova 10へのバージョンアップ不具合のように見えます。

Monaca Debuggerが最初からアラームしている通りです。 Monaca Debuggerのメッセージを信じろ、ということですね。

以前報告時に 9→10にバージョンアップした際 IDE側 の「MonacaPushAppの node_modules下で 各package.json」の バージョンアップしたはずの pluginバージョンが同期していないと指摘しました。

今回 端末側Monaca Debuggerの使用プラグインを確認。

NIFCLOUD-mbaas/MonacaPushAppのチュートリアルベースで設定後 ビルド前に Cordova CLIを9→10に行使する際 4つのpluginをバージョンアップする旨 メッセージが表示されます。 

そのうち 以下〇した3つは 正しくバージョンアップして存在していました。     〇cordva-plugin-splashscreen 5.0.2 →6.0.0 〇cordva-plugin-whitelist 1.3.3 →1.3.4 〇monaca-plugin-monaca-core →3.3.0 3.3.1

しかし以下は 存在していませんでした。 ×ncmb-push-monaca-plugin 3.0.7 →3.1.0? 結局 ないから動作しないだけですね。

Monaca Debuggerの情報 バージョン10.0.3 ビルド日は2021/5/17

CordovaVersionは10.0.0 CordovaAndroidVersionは9.1.0

使用pluginに nifの名称がかかわるものはなし

monacaにかかわるものは mobi.monaca.plugins.debugger.android 10.0.1 monaca-plugin-monaca-core 3.3.1 monaca-plugin-share 1.0.1 monaca-plugin-webintent 1.0.1

monaca側の対応が必要だと思ってますが ユーザー側でできることがあれば教えてください。

なお 本件は monacaのダッシュボードから直接不具合報告もしています。

goofmint commented 2 years ago
cordva-plugin-splashscreen 5.0.2 →6.0.0
cordva-plugin-whitelist 1.3.3 →1.3.4
monaca-plugin-monaca-core →3.3.0 3.3.1

こういったインストールされているプラグインが一覧表示できる(メニューにある)のはカスタムデバッガーですね。

hoppyhajime commented 2 years ago

アドバイスありがとうございます。

デバッガーについての確認ですが素人なので基本から確認させていただきます。 このデバッガーとは 端末側の PLAYストアで提供される アプリと理解していいでしょうか。 この前提で playストアにて monacaをキーワードとして検索したところ  

1.Monacaデバッガー   ★特にカスタムデバッガー表記なし   デバッグクライアントと表記  評価4.0 5万以上ダウンロード

 本アプリについて アンインストールと開くのアイコンが出るので   私の端末にインストールされているのは このアプリです。

その他   2.Monaca for Study  未インストール 3.Monaca Now     未インストール

しか見つかりませんでした。

なお 以下のドキュメントを確認しても 複数のデバッガーアプリはなさそうです。 https://docs.monaca.io/ja/products_guide/debugger/features/

また、私の記載が悪いのだと思いますが 該当pluginの有無は 上記マニュアル中 以下の説明のある機能のうち「利用可能なプラグインの一覧」を使っています。

マニュアルから抜粋 デバッガーについて デバッガーの詳細情報を表示します。表示する情報は、デバッガーのバージョン番号、プラットフォーム情報、CLI バージョン番号、WebView エンジン ( Android のみ )、利用可能なプラグインの一覧などです。 ★カスタムかどうかわかりませんが 利用可能なプラグインは確認できます。      その他  デバッガーアプリ内の 機能を確認しようと

1.設定 を開いても デバッグとカスタムと切り替える機能はありませんでした。

2.このデバッガーについて を開くと バージョン情報や利用可能なプラグインの一覧の記載がありますが ここにも デバッグとカスタムと切り替える機能はありませんでした。  

IDE側で カスタムかデバッグかの確認は 既報のとおりです。  

  カスタムデバッガーとは IDE側かアプリ側か どうしたら切り替わるのか それはどこに存在するのか  どうやったら カスタムデバッガーかどうか確認できるのか 教示頂けませんでしょうか。

既報のとおり IDE側、アプリ側 どちらも 私のスキルで調べられる可能な範囲は 達しています。 見てわかる通り デバッガーアプリに入るpluginを無意識に消せるほどのスキルはありません。

なお お手持ちのMONACA Debuggerの10.代バージョン情報と 使用プラグインに ncmb-push-monaca-plugin 3.1.0が存在するか ちょっとだけ見て頂けると幸いです。 1分とかからないと思います。

goofmint commented 2 years ago

いいえ、違います。デバッグビルドを使って、Monaca IDE上で自分でビルドするものです。

そこはMonacaの機能なので、Monacaにて問い合わせるのが早いかと思います。

hoppyhajime commented 2 years ago

あのー IDE側で カスタムビルドかデバッグビルドかの点については  すでに 報告しています。

ビルド環境ですが デバッグビルドです。

IDEの画面上から 1.androidアプリのビルド  2.薄青文字のデバッグビルド 下から山 3.向かって左のカスタムデバッグが黒文字、右のデバッグビルドが薄青文字 

デバッグビルドだと思います。

画像で上げられないのでわかりにくいですが

マニュアル https://docs.monaca.io/ja/products_guide/monaca_ide/build/build_android/ の ステップ 3 : アプリのビルド の中の

「2.目的に応じたビルドの種類を選択して、ビルドを開始する ボタンをクリックします。」 の 直下の画像

の日本語化した画像と同じ画面でやっています。

ビルド結果としても マニュアルの以下の項目直下と同じAndroid デバッグビルド Project v1.0.0 と画面に出ています。

「4.ビルドが完了するまで、しばらく待ちます。ビルドが成功した場合には、次のような画面が表示されます。ビルドの完了後、ビルド済みアプリをインストールまたはダウンロードできます。」

「3.「 リリース向けビルド 」 の 「 リリースビルド 」 を選択した場合、ビルドを開始する前に、署名用エイリアスの選択とパスワードの入力を行います。」 直下の 画像ではありません。

これでも 当方が カスタムビルドと間違えていますか?

素人なので 確認の仕方が悪いかもしれませんが 素人なので なにをどう確認すればいいのかもできれば ご指摘いただかないと なかなか進まないですね。

MONACAの機能だから MONACAに聞け、はわかるのですが 最初から MONACAのことについてを聞いているし お答えいただいていたので 混乱しますし直接不具合申告してもいることも報告済です。

当方の作業が正しければ

デバッグビルドしているのに 結果がカスタムビルドになっているので動作しないバグが MONACAで発生していて MONACA側に対処を求めるしかない

という現時点の結論として整理します。

motoyama-yusuke commented 2 years ago

デバッグビルドしたアプリを、どこ(何)で、どのように動かしてますか?

hoppyhajime commented 2 years ago

あのー デバッグビルドしたアプリは  Monaca DebuggerというAndroidアプリで確認していると 何度も書いているつもりですが?

1.Monacaデバッガー   ★特にカスタムデバッガー表記なし   デバッグクライアントと表記  評価4.0 5万以上ダウンロード

 本アプリについて アンインストールと開くのアイコンが出るので   私の端末にインストールされているのは このアプリです。     Monaca Debuggerの情報 バージョン10.0.3 ビルド日は2021/5/17

CordovaVersionは10.0.0 CordovaAndroidVersionは9.1.0

頼むから 私のせいばかりだと 思い込まないで

なお お手持ちのMONACA Debuggerの10.代バージョン情報と 使用プラグインに ncmb-push-monaca-plugin 3.1.0が存在するか ちょっとだけ見てください。 1分もかからないと思います。

motoyama-yusuke commented 2 years ago

MONACAデバッガーは、ビルドする前のアプリを確認するものです。 カスタムビルドしようが、デバッグビルドしようが、ビルドしたものは使われていません。

デバッグビルドしたアプリを、androidにインストールして動かしてください。

hoppyhajime commented 2 years ago

よくわかりません。

Androidに入っている Monaca Debuggerは ビルドする前のアプリを確認するものとのご指摘ですよね?

後段の 「デバッグビルドしたアプリを、androidにインストールして動かしてください。」を読むと デバッグビルドして インストールしろとのご指摘のように読めます。

相反しているように読めますが 具体的にはどういうことでしょうか? cordova9→10しないと バージョン違いのエラーもでて動作しないのは わかっているので これだけやって ビルドはせずに 同期させればいいんですか?   

IDE上のシュミレータの話ではなく Androidアプリの Monaca Debuggerの話で いいんですよね?

「あのー デバッグビルドしたアプリは  Monaca DebuggerというAndroidアプリで確認していると 何度も書いているつもりですが?」

hoppyhajime commented 2 years ago

またまたプロジェクトを 削除し 新規に入れました。 ビルドしないと 同期しませんでした。

しないのが正しい動作ですよね?

https://github.com/NIFCloud-mbaas/MonacaPushApp

  1. 実機ビルド 動作確認を行う端末に応じて、該当する作業を行ってください

Android端末で動作確認をする場合 「ビルド」>「Androidアプリのビルド」をクリックします デフォルト設定(「デバッグ向けビルド」>「デバッグビルド」が選択されている状態)で画面下の「ビルドを開始する」ボタンをクリックします 別のタブでビルドが開始され、少し待つとビルドが完了します ビルド完了後の画面に表示されるいずれかの方法で、端末にアプリをインストールをしてください


ビルドしたものは使われていないとは なんのことでしょうか? IDE側のシュミレータと混同していませんか?

当方素人だから疑われるのは仕方ないですが 何度も 同じことを疑われて 確認しても 進みません。

当方の確認が不十分と言うなら どうしたら 具体的に確認できるのかも 指摘ください。マニュアルなど読んでより理解しやすいようにしていても わかりやすくと思って長く書くほど わかりにくくなっているせいか 読んでないですよね。  

まずは Android のMonaca Debugger Cordova10代のものの 使用プラグインに ncmb-push-monaca-plugin 3.1.0が存在するか ちょっとだけ見てください。 1分もかからないと思います。

hoppyhajime commented 2 years ago

本日は

Monacaで 別のメアドで別アカウントを作って  CORDOVA10にあげて デバッグビルドし

別のAndroid端末に 新規でMonacaDebuggerをインストールして 今日作成したMonacaのアカウントで ログインし同期し テストしましたが

結果は 変わりませんでした。

メッセージは デバッガーに含まれていないプラグインがあります  plugin.push.nifcloud

AppLogは下記の通りです。 UncaughtTypeError:Cannot read property 'setDeviceToken' of undefined www/index.html:13

他の方の Monaca Debugger Cordova10代のものに plugin.push.nifcloud が存在するなら MonacaPushAppのCordova9→10にあげるプログラムに誤って削除してしまうバグがある。

存在しないのなら Cordova9→10にあげる「共通」プログラムに plugin.push.nifcloudを誤って削除してしまうバグがある。

★WINDOWSでもなんでも 個別に修正バージョンは作らず 共通のものをバージョンアップし管理していくのが通常だと思うのですが

同じCordova9→10に上げる必要があるのに バージョンアップの内容に 差異があること自体間違いのもとじゃないかと疑っています。

motoyama-yusuke commented 2 years ago

何度も 同じことを疑われて 確認しても 進みません。

これを言われると、これ以上は、善意でのサポートは集まらないでしょうね。 私も、やめようと思いましたが

先程の質問に答えてないので、これで最後にします。

後段の 「デバッグビルドしたアプリを、androidにインストールして動かしてください。」を読むと デバッグビルドして インストールしろとのご指摘のように読めます。

デバッグビルドして、インストール必要です。 ただし、「Monaca Debuger」をインストールするのでは有りません。

極端な話、デバッグビルドしたアプリを動かすことが目的なら、 Android端末に「Monaca Debuger」はインストール不要です。

対象のアプリをビルドした後の画面で、 「ビルドの完了後、ビルド済みアプリをインストールまたはダウンロードできます。」の画面が表示していると、 ご自分でも書いてますが、そこにQRコードが出てますよね?それを、Androidで読み取ってインストールしてください。

既に実施済みの上で、スレッドやり取りしていたのでしたら、間違った指摘はお詫びします。

hoppyhajime commented 2 years ago

Monaca Debugerのインストールではないのは理解しています。

私が過去インストールしていた Monaca IDE 並びに AndroidのMonacaDebuggerに 不具合がある可能性を 考えて 新規のメアドで 再度初期状態からのテストを実施し 再現性をテストしたまでです。 

デバッグしたアプリを動かすについて QRで読み込みましたが動作しませんでした。 初期画面で固まったままで 解析もできないままです。

motoyama-yusuke さんを不快にさせるつもりはありませんが motoyama-yusukeさんの MonacaDebuggerが

Andriodかiosか  Cordovaは 9か10か 使用pluginの中に  plugin.push.nifcloud 3.1.0 があるか  MonacaPushAppが動作しているか だけ教えてください。

もうそれだけでいいです。  1分もかからないと思います。

motoyama-yusuke commented 2 years ago

すみません、mBaaSのPUSHが動作しているプロジェクトは、 現在は保有しておらず、確認できる環境は持っていないのです。

力になれず申し訳有りません。

hoppyhajime commented 2 years ago

pushがないのはわかりました。

MonacaDebuggerが

Andriodかiosか  Cordovaは 9か10か 使用pluginの中に  plugin.push.nifcloud 3.1.0の有無は 教えて頂けませんか? Cordovaは 9→10の時 まとめてアップデートしていて成功しているなら plugin.push.nifcloud 3.1.0が存在するはずです。

1分かからないと思います。ここまでお力添え頂いたので 禿頭下げてお願いします。

motoyama-yusuke commented 2 years ago

アップデートしたわけじゃないですが。 image

hoppyhajime commented 2 years ago

goofmintさん motoyama-yusukeさん もちろん Monaca本体でご対応頂いた方

解決しました。アドバイスありがとうございました。

私がみなさんの想像の上を行く あほ だっただけです。 ご対応ありがとうございました。

結論 1.デバッグビルド完了後の QRコードなどで 端末にインストールする。 

端末の画面上は index.htmlが表示されたままで ボタンや文字など一切の入力操作はありません。 画面が固まっているとかエラーではない状態です。

ニフクラ側の管理画面で push通知発信側の手順に 進みましょう。

補足 2.ストア版 MonacaDebuggerは ・push通知は 仕様上 対応していない。  ・利用pluginは Monacaが明示的に事前に入れるものだが push通知にはそもそも対応してないので plugin.push.nifcloudは 利用pluginに入っておらず 「ない」ものが「ない」という ストア版のエラーは適切な動作。

3.Debuggerというか端末での動作環境として ストア版、デバッグビルド、カスタムビルド、リリースビルド 各々差異がある。プッシュ通知はデバッグビルドのみ。

端末での評価に関しては 各ビルド完了後に表示される 選択肢から選択すること。ストア版は万能ではない。

4.「1」の時 もし挙動しない場合のチェック ・IDEの 設定-cordovapluginの管理で

 有効なpluginに NIFCloudMBがあればOK

 ない場合 「利用可能なplugin」に NIFCloudMBがあれば これを利用可能にすればOK 

・このpluginは 「cordova プラグインのインポート」- 「urlまたはパッケージ名を指定します」から引用するものではありませんので freeプランのままで評価できます。

5.その他 ストア版MonacaDebuggerと混乱する場合は 一旦ストア版を削除して評価したほうがわかりやすいと思いました。 (そんなあほは 私くらいでしょうが)   以上 同じことで悩む誰かのために整理し恥をさらすことで みなさまへの御礼と自分のあほさの懺悔をいたします。

重ね重ねご対応アドバイスありがとうございました。