実現したいこと
アプリアップデート後に発生したクラッシュの原因を突き止めたい。こういうクラッシュに遭遇した時にどういった対応をして解決したか伺いたいです
発生している問題
ほとんどのユーザーが起動と同時にクラッシュが発生。Crashlyticsのエラー検知は反応しない。
- 発生しているのはiosのみ(iosしか配信していないため)
 - アプリを再インストールしても落ちる(by アプリ使用ユーザー)
 - [最終手段]バグが発生している友人の実機でデバッグ (今後試す予定)
 
試したこと
- Appleのapp reviewは通るので審査側では正常に起動している模様
 - 自分の実機携帯iPhone15(testflight版, appstoreから落としてみる)ではクラッシュしない、起動する
 - flutter run --release 問題なく動く
 - エミュレータでも問題なく動く
 - Sentry, firebase Crashlyticsを入れているが検知できない
 - ↑ クラッシュしていないユーザーからのエラー通知や情報はくるので設定が間違っているわけではない
 - testflightで古いバージョンのアプリを入れてsharedPreferencesに情報を追加後、最新版をインストールしても問題なく動く
 
あやしいところ
sharedPreferencesがなんとなく怪しそう??(特に根拠なし)
最終手段としてロールバックもあり得ますが、根本的なバグの解決になっていないのでその方法は提案不要です!
該当のソースコード
とりあえずmain.dartのinit部分のみ。
dart
1void main() async { 2 await runZonedGuarded(() async { 3 WidgetsFlutterBinding.ensureInitialized(); 4 MobileAds.instance.initialize(); 5 await Firebase.initializeApp( 6 options: DefaultFirebaseOptions.currentPlatform, 7 ); 8 late final SharedPreferences sharedPreferences; 9 try { 10 await Future.wait([ 11 Future(() async { 12 sharedPreferences = await SharedPreferences.getInstance(); 13 }), 14 ]); 15 } catch (e, s) { 16 FirebaseCrashlytics.instance.recordError(e, s); 17 } 18 19 await SentryFlutter.init((options) { 20 options.dsn = 21 'https://.....'; 22 options.tracesSampleRate = 0.5; 23 }, appRunner: () => runApp(const MyApp())); 24 }, (error, stackTrace) { 25 FirebaseCrashlytics.instance.recordError(error, stackTrace); 26 }); 27 List<AuthProvider> providers; 28 providers = [ 29 GoogleProvider( 30 clientId: 31 "....apps.googleusercontent.com", 32 redirectUri: 'socialauth://', 33 ), 34 AppleProvider(), 35 ]; 36 37 FirebaseUIAuth.configureProviders(providers); 38}
あなたの回答
tips
プレビュー