diff --git a/Nextcloud.xcodeproj/project.pbxproj b/Nextcloud.xcodeproj/project.pbxproj
index 832f27e836..39b3c8fc7b 100644
--- a/Nextcloud.xcodeproj/project.pbxproj
+++ b/Nextcloud.xcodeproj/project.pbxproj
@@ -3631,6 +3631,7 @@
F77B0F981D118A16002130FE /* Embed Foundation Extensions */,
AFBFD01327551A54002244BC /* ShellScript */,
F76DA934277B75710082465B /* Embed Frameworks */,
+ F76995F02F99EF6C00291FA7 /* Crashlytics dSYM Upload */,
);
buildRules = (
);
@@ -4068,6 +4069,29 @@
shellPath = /bin/sh;
shellScript = "if test -d \"/opt/homebrew/bin/\"; then\n PATH=\"/opt/homebrew/bin/:${PATH}\"\nfi\n\nexport PATH\n\nif which swiftlint >/dev/null; then\n swiftlint\nelse\n echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n";
};
+ F76995F02F99EF6C00291FA7 /* Crashlytics dSYM Upload */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputFileListPaths = (
+ );
+ inputPaths = (
+ "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}",
+ "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Resources/DWARF/${PRODUCT_NAME}",
+ "${DWARF_DSYM_FOLDER_PATH}/${DWARF_DSYM_FILE_NAME}/Contents/Info.plist",
+ "$(TARGET_BUILD_DIR)/$(UNLOCALIZED_RESOURCES_FOLDER_PATH)/GoogleService-Info.plist",
+ "$(TARGET_BUILD_DIR)/$(EXECUTABLE_PATH)",
+ );
+ name = "Crashlytics dSYM Upload";
+ outputFileListPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "# Type a script or drag a script file from your workspace to insert its path.\n\"${BUILD_DIR%/Build/*}/SourcePackages/checkouts/firebase-ios-sdk/Crashlytics/run\"\n\n";
+ };
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -5798,14 +5822,13 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 2;
+ CURRENT_PROJECT_VERSION = 4;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = NKUJUXUJ3B;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
ENABLE_TESTING_SEARCH_PATHS = YES;
- ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
@@ -5866,14 +5889,13 @@
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
- CURRENT_PROJECT_VERSION = 2;
+ CURRENT_PROJECT_VERSION = 4;
DEAD_CODE_STRIPPING = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = NKUJUXUJ3B;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
ENABLE_TESTING_SEARCH_PATHS = YES;
- ENABLE_USER_SCRIPT_SANDBOXING = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
"$(inherited)",
diff --git a/Nextcloud.xcodeproj/xcshareddata/xcschemes/Nextcloud.xcscheme b/Nextcloud.xcodeproj/xcshareddata/xcschemes/Nextcloud.xcscheme
index 9b415a6b60..e8cd71a81d 100755
--- a/Nextcloud.xcodeproj/xcshareddata/xcschemes/Nextcloud.xcscheme
+++ b/Nextcloud.xcodeproj/xcshareddata/xcschemes/Nextcloud.xcscheme
@@ -140,6 +140,10 @@
argument = "whitelist:NETWORKING TASKS"
isEnabled = "NO">
+
+
diff --git a/iOSClient/AppDelegate.swift b/iOSClient/AppDelegate.swift
index 4251685876..db1734c36e 100644
--- a/iOSClient/AppDelegate.swift
+++ b/iOSClient/AppDelegate.swift
@@ -51,11 +51,9 @@ class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterD
UserDefaults.standard.register(defaults: ["UserAgent": userAgent])
- #if !DEBUG
if !NCPreferences().disableCrashservice, !NCBrandOptions.shared.disable_crash_service {
FirebaseApp.configure()
}
- #endif
NCBrandColor.shared.createUserColors()
diff --git a/iOSClient/Settings/Settings/NCSettingsView.swift b/iOSClient/Settings/Settings/NCSettingsView.swift
index dbe221edac..a2482c78ef 100644
--- a/iOSClient/Settings/Settings/NCSettingsView.swift
+++ b/iOSClient/Settings/Settings/NCSettingsView.swift
@@ -5,6 +5,7 @@
import SwiftUI
import NextcloudKit
+import FirebaseCrashlytics
/// Settings view for Nextcloud
struct NCSettingsView: View {
@@ -275,6 +276,26 @@ struct NCSettingsView: View {
}
}
})
+#if DEBUG
+ Section(header: Text("Debug").font(.headline), content: {
+ Button(action: {
+ Crashlytics.crashlytics().log("Test crash triggered")
+ fatalError("🔥 Crash test")
+ }, label: {
+ HStack {
+ Image(systemName: "flame.fill")
+ .font(.icon())
+ .foregroundColor(.red)
+ .frame(width: 39)
+
+ Text("Test crash triggered")
+ .font(.body)
+ }
+ })
+ .tint(Color(NCBrandColor.shared.textColor))
+ })
+#endif
+
// `Watermark` Section
Section(content: {
}, footer: {