Unityで開発したiOSアプリにFirebase Messagingを導入したのですが、アプリをバックグラウンドに移行させるとアプリがクラッシュしてしまう現象が発生したので、今後の為にメモを残しておきたいと思います。
【iOS】Firebase Messaging関連のエラー「FIRMessaging setShouldEstablishDirectChannel」
エラー内容は以下です。
2021-03-19 09:26:11.855392+0900 [5871:2444218] -[FIRMessaging setShouldEstablishDirectChannel:]: unrecognized selector sent to instance 0x280f3af40
2021-03-19 09:26:12.011563+0900[5871:2444218] Uncaught exception: NSInvalidArgumentException: -[FIRMessaging setShouldEstablishDirectChannel:]: unrecognized selector sent to instance 0x280f3af40
(
0 CoreFoundation 0x0000000183f59880 727F2644-EB4E-3D57-BC2E-E6803BA92366 + 1202304
1 libobjc.A.dylib 0x0000000198f74c50 objc_exception_throw + 60
2 CoreFoundation 0x0000000183e6095c 727F2644-EB4E-3D57-BC2E-E6803BA92366 + 182620
3 CoreFoundation 0x0000000183f5c438 727F2644-EB4E-3D57-BC2E-E6803BA92366 + 1213496
4 CoreFoundation 0x0000000183f5e740 _CF_forwarding_prep_0 + 96
5 UnityFramework 0x000000010790307c _ZN8firebase9messagingL40AppDelegateApplicationDidEnterBackgroundEP11objc_objectP13objc_selectorP13UIApplication + 416
6 CoreFoundation 0x0000000183eb69a0 727F2644-EB4E-3D57-BC2E-E6803BA92366 + 534944
7 CoreFoundation 0x0000000183eb6948 727F2644-EB4E-3D57-BC2E-E6803BA92366 + 534856
8 CoreFoundation 0x0000000183eb5eb0 727F2644-EB4E-3D57-BC2E-E6803BA92366 + 532144
9 CoreFoundation 0x0000000183eb5870 _CFXNotificationPost + 716
10 Foundation 0x000000018517c4bc 7698BF3E-0CF6-31C0-85E9-562714F01276 + 29884
11 GoogleDataTransport 0x000000010bef8f98 -[GDTCORApplication iOSApplicationDidEnterBackground:] + 116
12 CoreFoundation 0x0000000183eb69a0 727F2644-EB4E-3D57-BC2E-E6803BA92366 + 534944
13 CoreFoundation 0x0000000183eb6948 727F2644-EB4E-3D57-BC2E-E6803BA92366 + 534856
14 CoreFoundation 0x0000000183eb5eb0 727F2644-EB4E-3D57-BC2E-E6803BA92366 + 532144
15 CoreFoundation 0x0000000183eb5870 _CFXNotificationPost + 716
16 Foundation 0x000000018517c4bc 7698BF3E-0CF6-31C0-85E9-562714F01276 + 29884
17 UIKitCore 0x0000000185f5f520 8518EAE3-832B-3FF0-9FA5-9DBE3041F26C + 2200864
18 UIKitCore 0x0000000185f609fc 8518EAE3-832B-3FF0-9FA5-9DBE3041F26C + 2206204
19 UIKitCore 0x00000001864d6f9c _UIScenePerformActionsWithLifecycleActionMask + 112
20 UIKitCore 0x0000000185f60780 8518EAE3-832B-3FF0-9FA5-9DBE3041F26C + 2205568
21 UIKitCore 0x0000000185f6faf8 8518EAE3-832B-3FF0-9FA5-9DBE3041F26C + 2267896
22 UIKitCore 0x0000000185f601d0 8518EAE3-832B-3FF0-9FA5-9DBE3041F26C + 2204112
23 UIKitCore 0x0000000185f6f838 8518EAE3-832B-3FF0-9FA5-9DBE3041F26C + 2267192
24 UIKitCore 0x0000000185f71370 8518EAE3-832B-3FF0-9FA5-9DBE3041F26C + 2274160
25 UIKitCore 0x00000001863e360c 8518EAE3-832B-3FF0-9FA5-9DBE3041F26C + 6936076
26 UIKitCore 0x00000001864ef6c4 _UISceneSettingsDiffActionPerformChangesWithTransitionContext + 272
27 UIKitCore 0x0000000185f7109c 8518EAE3-832B-3FF0-9FA5-9DBE3041F26C + 2273436
28 UIKitCore 0x0000000185d985a0 8518EAE3-832B-3FF0-9FA5-9DBE3041F26C + 337312
29 UIKitCore 0x0000000185d96f14 8518EAE3-832B-3FF0-9FA5-9DBE3041F26C + 331540
30 UIKitCore 0x0000000185d981c8 8518EAE3-832B-3FF0-9FA5-9DBE3041F26C + 336328
31 UIKitCore 0x000000018640d2e8 8518EAE3-832B-3FF0-9FA5-9DBE3041F26C + 7107304
32 FrontBoardServices 0x0000000193cc4c94 A15E664C-54BB-3AC3-9D7F-0BBA7F43EBFE + 44180
33 FrontBoardServices 0x0000000193cf1504 A15E664C-54BB-3AC3-9D7F-0BBA7F43EBFE + 226564
34 FrontBoardServices 0x0000000193cd34a0 A15E664C-54BB-3AC3-9D7F-0BBA7F43EBFE + 103584
35 FrontBoardServices 0x0000000193cf1430 A15E664C-54BB-3AC3-9D7F-0BBA7F43EBFE + 226352
36 libdispatch.dylib 0x0000000183b4ddb0 B92757B1-0434-3E9B-A3AC-B6DA6B81945C + 15792
37 libdispatch.dylib 0x0000000183b51738 B92757B1-0434-3E9B-A3AC-B6DA6B81945C + 30520
38 FrontBoardServices 0x0000000193d18250 A15E664C-54BB-3AC3-9D7F-0BBA7F43EBFE + 385616
39 FrontBoardServices 0x0000000193d17ee0 A15E664C-54BB-3AC3-9D7F-0BBA7F43EBFE + 384736
40 FrontBoardServices 0x0000000193d18434 A15E664C-54BB-3AC3-9D7F-0BBA7F43EBFE + 386100
41 CoreFoundation 0x0000000183ed576c 727F2644-EB4E-3D57-BC2E-E6803BA92366 + 661356
42 CoreFoundation 0x0000000183ed5668 727F2644-EB4E-3D57-BC2E-E6803BA92366 + 661096
43 CoreFoundation 0x0000000183ed49cc 727F2644-EB4E-3D57-BC2E-E6803BA92366 + 657868
44 CoreFoundation 0x0000000183ecea8c 727F2644-EB4E-3D57-BC2E-E6803BA92366 + 633484
45 CoreFoundation 0x0000000183ece21c CFRunLoopRunSpecific + 600
46 GraphicsServices 0x000000019ba9a784 GSEventRunModal + 164
47 UIKitCore 0x000000018690eee8 8518EAE3-832B-3FF0-9FA5-9DBE3041F26C + 12357352
48 UIKitCore 0x000000018691475c UIApplicationMain + 168
49 UnityFramework 0x0000000106477118 -[UnityFramework runUIApplicationMainWithArgc:argv:] + 108
50 0x00000001028bbe00 main + 68
51 libdyld.dylib 0x0000000183b8e6b0 21B19919-1334-38BC-B233-896E929945E0 + 5808
)
【開発環境】
- Unityバージョン:2019.4.13f1
- Xcodeバージョン:12.4
【実装状況】
- Firebase MessagingとFirebase Analyticsを導入
-
Google service.infoは導入済み
ネットで似たようなエラーを検索してみたのですが、なかなか解決策が見つかりませんでした。
試したこと
- Google service.infoのTarget Member Shipにチェックが入っているか確認
- UserNotifications.frameworkの追加
-
Firebaseのログ送信部分の処理を見直す
- UnityプロジェクトでインポートしたFirebaseと、Cocoapodsで導入したFirebaseのバージョンを合わせる
最後の「UnityプロジェクトでインポートしたFirebaseと、Cocoapodsで導入したFirebaseのバージョンを合わせる」でクラッシュが解消されました。
UnityからXcodeプロジェクトを出力する際、Cocoapods関連のエラーが出てframeworkがインストールできなかったので、Xcode上でCocoapods frameworkのインストールを行ったのですが、Unity側のFirebaseとXcode側のFirebaseのバージョンが違う為、「FIRMessaging setShouldEstablishDirectChannel」のメソッドはありませんというエラーっぽいです。
前にも遭遇したのですが、すっかり忘れていて同じようにまた解消に時間がかかってしまったので、今後の為に書き残しておきます。
お知らせ
脱出ゲーム「忍者屋敷からの脱出」をリリースしました!