Skip to content

Commit 6949b66

Browse files
committed
feat: update crashlytics setting
1 parent e2c173d commit 6949b66

File tree

2 files changed

+75
-61
lines changed

2 files changed

+75
-61
lines changed

ios/Runner.xcodeproj/project.pbxproj

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@
229229
C5C69C4274830CDFF1F48AE0 /* [CP] Embed Pods Frameworks */,
230230
A48806D922AF5CC500608B9C /* ShellScript */,
231231
7B52B608005F40B6BAE8AEF5 /* [CP] Copy Pods Resources */,
232+
3343CD5A2182BD2E192F10F9 /* FlutterFire: "flutterfire upload-crashlytics-symbols" */,
232233
);
233234
buildRules = (
234235
);
@@ -332,6 +333,24 @@
332333
/* End PBXResourcesBuildPhase section */
333334

334335
/* Begin PBXShellScriptBuildPhase section */
336+
3343CD5A2182BD2E192F10F9 /* FlutterFire: "flutterfire upload-crashlytics-symbols" */ = {
337+
isa = PBXShellScriptBuildPhase;
338+
buildActionMask = 2147483647;
339+
files = (
340+
);
341+
inputFileListPaths = (
342+
);
343+
inputPaths = (
344+
);
345+
name = "FlutterFire: \"flutterfire upload-crashlytics-symbols\"";
346+
outputFileListPaths = (
347+
);
348+
outputPaths = (
349+
);
350+
runOnlyForDeploymentPostprocessing = 0;
351+
shellPath = /bin/sh;
352+
shellScript = "\n#!/bin/bash\nPATH=${PATH}:$FLUTTER_ROOT/bin:$HOME/.pub-cache/bin\nflutterfire upload-crashlytics-symbols --upload-symbols-script-path=$PODS_ROOT/FirebaseCrashlytics/upload-symbols --platform=ios --apple-project-path=${SRCROOT} --env-platform-name=${PLATFORM_NAME} --env-configuration=${CONFIGURATION} --env-project-dir=${PROJECT_DIR} --env-built-products-dir=${BUILT_PRODUCTS_DIR} --env-dwarf-dsym-folder-path=${DWARF_DSYM_FOLDER_PATH} --env-dwarf-dsym-file-name=${DWARF_DSYM_FILE_NAME} --env-infoplist-path=${INFOPLIST_PATH} --default-config=default\n";
353+
};
335354
3B06AD1E1E4923F5004D2608 /* Thin Binary */ = {
336355
isa = PBXShellScriptBuildPhase;
337356
alwaysOutOfDate = 1;
@@ -377,10 +396,12 @@
377396
);
378397
inputPaths = (
379398
"${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh",
399+
"${PODS_CONFIGURATION_BUILD_DIR}/firebase_messaging/firebase_messaging_Privacy.bundle",
380400
"${PODS_CONFIGURATION_BUILD_DIR}/google_sign_in_ios/google_sign_in_ios_privacy.bundle",
381401
);
382402
name = "[CP] Copy Pods Resources";
383403
outputPaths = (
404+
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/firebase_messaging_Privacy.bundle",
384405
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/google_sign_in_ios_privacy.bundle",
385406
);
386407
runOnlyForDeploymentPostprocessing = 0;
@@ -455,6 +476,7 @@
455476
"${BUILT_PRODUCTS_DIR}/FirebaseMessaging/FirebaseMessaging.framework",
456477
"${BUILT_PRODUCTS_DIR}/FirebasePerformance/FirebasePerformance.framework",
457478
"${BUILT_PRODUCTS_DIR}/FirebaseRemoteConfig/FirebaseRemoteConfig.framework",
479+
"${BUILT_PRODUCTS_DIR}/FirebaseRemoteConfigInterop/FirebaseRemoteConfigInterop.framework",
458480
"${BUILT_PRODUCTS_DIR}/FirebaseSessions/FirebaseSessions.framework",
459481
"${BUILT_PRODUCTS_DIR}/FirebaseSharedSwift/FirebaseSharedSwift.framework",
460482
"${BUILT_PRODUCTS_DIR}/GTMAppAuth/GTMAppAuth.framework",
@@ -497,6 +519,7 @@
497519
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseMessaging.framework",
498520
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebasePerformance.framework",
499521
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseRemoteConfig.framework",
522+
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseRemoteConfigInterop.framework",
500523
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseSessions.framework",
501524
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FirebaseSharedSwift.framework",
502525
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMAppAuth.framework",

lib/main.dart

Lines changed: 52 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -23,71 +23,62 @@ Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
2323
);
2424
}
2525

26-
void main() {
27-
runZonedGuarded(
28-
() async {
29-
WidgetsFlutterBinding.ensureInitialized();
26+
Future<void> main() async {
27+
WidgetsFlutterBinding.ensureInitialized();
3028

31-
final ByteData data = await PlatformAssetBundle().load(
32-
'assets/ca/twca_nsysu.cer',
33-
);
34-
SecurityContext.defaultContext.setTrustedCertificatesBytes(
35-
data.buffer.asUint8List(),
36-
);
29+
final ByteData data = await PlatformAssetBundle().load(
30+
'assets/ca/twca_nsysu.cer',
31+
);
32+
SecurityContext.defaultContext.setTrustedCertificatesBytes(
33+
data.buffer.asUint8List(),
34+
);
3735

38-
await Preferences.init(
39-
key: Constants.key,
40-
iv: Constants.iv,
41-
);
36+
await Preferences.init(
37+
key: Constants.key,
38+
iv: Constants.iv,
39+
);
4240

43-
timeago.setLocaleMessages('zh-TW', timeago.ZhMessages());
44-
timeago.setLocaleMessages('en-US', timeago.EnMessages());
45-
if (!kIsWeb && Platform.isAndroid) {
46-
//TODO: 改使用原生方式限制特定網域
47-
HttpOverrides.global = MyHttpOverrides();
48-
}
49-
final String currentVersion =
50-
Preferences.getString(Constants.prefCurrentVersion, '0');
51-
if (int.parse(currentVersion) < 700) _migrate700();
52-
FirebaseMessaging.onBackgroundMessage(
53-
_firebaseMessagingBackgroundHandler,
54-
);
55-
if (FirebaseUtils.isSupportCore ||
56-
Platform.isWindows ||
57-
Platform.isLinux) {
58-
await Firebase.initializeApp(
59-
options: DefaultFirebaseOptions.currentPlatform,
60-
);
61-
}
62-
if (kDebugMode) {
63-
if (FirebaseCrashlyticsUtils.isSupported) {
64-
await FirebaseCrashlytics.instance
65-
.setCrashlyticsCollectionEnabled(false);
66-
}
67-
if (FirebasePerformancesUtils.isSupported) {
68-
await FirebasePerformance.instance
69-
.setPerformanceCollectionEnabled(false);
70-
}
71-
}
72-
if (!kIsWeb &&
73-
(Platform.isWindows || Platform.isMacOS || Platform.isLinux)) {
74-
GoogleSignInDart.register(
75-
clientId: SdkConstants.googleSignInDesktopClientId,
76-
);
77-
}
78-
if (!kDebugMode && FirebaseCrashlyticsUtils.isSupported) {
79-
FlutterError.onError = FirebaseCrashlytics.instance.recordFlutterError;
80-
}
81-
runApp(MyApp());
82-
},
83-
(Object e, StackTrace s) {
84-
if (!kDebugMode && FirebaseCrashlyticsUtils.isSupported) {
85-
FirebaseCrashlytics.instance.recordError(e, s);
86-
} else {
87-
throw e;
88-
}
89-
},
41+
timeago.setLocaleMessages('zh-TW', timeago.ZhMessages());
42+
timeago.setLocaleMessages('en-US', timeago.EnMessages());
43+
if (!kIsWeb && Platform.isAndroid) {
44+
//TODO: 改使用原生方式限制特定網域
45+
HttpOverrides.global = MyHttpOverrides();
46+
}
47+
final String currentVersion =
48+
Preferences.getString(Constants.prefCurrentVersion, '0');
49+
if (int.parse(currentVersion) < 700) _migrate700();
50+
FirebaseMessaging.onBackgroundMessage(
51+
_firebaseMessagingBackgroundHandler,
9052
);
53+
if (FirebaseUtils.isSupportCore || Platform.isWindows || Platform.isLinux) {
54+
await Firebase.initializeApp(
55+
options: DefaultFirebaseOptions.currentPlatform,
56+
);
57+
}
58+
if (kDebugMode) {
59+
if (FirebaseCrashlyticsUtils.isSupported) {
60+
await FirebaseCrashlytics.instance.setCrashlyticsCollectionEnabled(false);
61+
}
62+
if (FirebasePerformancesUtils.isSupported) {
63+
await FirebasePerformance.instance.setPerformanceCollectionEnabled(false);
64+
}
65+
}
66+
if (!kIsWeb && (Platform.isWindows || Platform.isMacOS || Platform.isLinux)) {
67+
GoogleSignInDart.register(
68+
clientId: SdkConstants.googleSignInDesktopClientId,
69+
);
70+
}
71+
72+
if (!kDebugMode && FirebaseCrashlyticsUtils.isSupported) {
73+
FlutterError.onError = (FlutterErrorDetails errorDetails) {
74+
FirebaseCrashlytics.instance.recordFlutterFatalError(errorDetails);
75+
};
76+
PlatformDispatcher.instance.onError = (Object error, StackTrace stack) {
77+
FirebaseCrashlytics.instance.recordError(error, stack);
78+
return true;
79+
};
80+
}
81+
runApp(MyApp());
9182
}
9283

9384
void _migrate700() {

0 commit comments

Comments
 (0)