Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add frame drop issue generation #65

Merged
merged 22 commits into from
Nov 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
6a58dbd
add big text file
armcknight Sep 22, 2023
d86e4b6
wip: implementing regex on main
armcknight Sep 26, 2023
9edbb12
dont disable unrelated features
armcknight Oct 12, 2023
8bbdee1
update transaction name/operation
armcknight Oct 12, 2023
b59f1c0
Merge remote-tracking branch 'origin/master' into armcknight/feat/28-…
armcknight Oct 12, 2023
e77299c
decode an image on the main thread
armcknight Oct 12, 2023
a4cf722
wrap in span
armcknight Oct 12, 2023
2e90fd1
fix up storbyoard after merging
armcknight Oct 12, 2023
85cd32d
fix up storbyoard after merging
armcknight Oct 12, 2023
f7e4f4c
Merge branch 'armcknight/feat/28-regex-on-main-thread' into armcknigh…
armcknight Oct 12, 2023
82c3f14
Merge remote-tracking branch 'origin/master' into armcknight/feat/27-…
armcknight Oct 12, 2023
89c7d1f
wip
armcknight Oct 13, 2023
272a021
Merge remote-tracking branch 'origin/master' into armcknight/feat/64-…
armcknight Oct 13, 2023
5b3c5fc
remove options that set the same as the default; add launch arg overr…
armcknight Oct 13, 2023
a066c2e
use sentry-cocoa via SPM instead of cocoapods
armcknight Oct 18, 2023
d0b9025
continue with button to create a frame drop
armcknight Oct 18, 2023
99faace
fix slow/frozen frame reporting and activity indicator
armcknight Oct 18, 2023
dc4d094
update to latest sentry release
armcknight Oct 20, 2023
9358c8d
Merge remote-tracking branch 'origin/master' into armcknight/feat/64-…
armcknight Nov 7, 2023
775103c
remove swiftmessages for now
armcknight Nov 7, 2023
80a1615
Adding CodeOwners to enable auto-assignment
kpujjigit Nov 15, 2023
1883d40
Revert "Adding CodeOwners to enable auto-assignment"
Nov 16, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions Brewfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
brew 'gh'
brew 'rbenv'
brew 'ruby-build'
tap 'getsentry/tools'
brew 'getsentry/tools/sentry-cli'
119 changes: 47 additions & 72 deletions EmpowerPlant.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,11 @@
objects = {

/* Begin PBXBuildFile section */
674899180B469D888700A555 /* Pods_EmpowerPlant.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 74014747DE857D26E9BD7B24 /* Pods_EmpowerPlant.framework */; };
846BEA1C2ABE611A0032F77F /* mobydick.txt in Resources */ = {isa = PBXBuildFile; fileRef = 846BEA1B2ABE611A0032F77F /* mobydick.txt */; };
843BD6272AD7798C00B0098F /* jwt-deep-field.png in Resources */ = {isa = PBXBuildFile; fileRef = 843BD6262AD7798C00B0098F /* jwt-deep-field.png */; };
843BD60F2AD08CE900B0098F /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 843BD60E2AD08CE900B0098F /* Utils.swift */; };
843BD6272AD7798C00B0098F /* jwt-deep-field.png in Resources */ = {isa = PBXBuildFile; fileRef = 843BD6262AD7798C00B0098F /* jwt-deep-field.png */; };
846BEA1C2ABE611A0032F77F /* mobydick.txt in Resources */ = {isa = PBXBuildFile; fileRef = 846BEA1B2ABE611A0032F77F /* mobydick.txt */; };
848716A32AD8C3CD00756467 /* BigInt in Frameworks */ = {isa = PBXBuildFile; productRef = 848716A22AD8C3CD00756467 /* BigInt */; };
848716B72ADFAA2000756467 /* Sentry in Frameworks */ = {isa = PBXBuildFile; productRef = 848716B62ADFAA2000756467 /* Sentry */; };
8B21663C29D3F8C80009C890 /* RandomErrors.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B21663B29D3F8C80009C890 /* RandomErrors.swift */; };
8BA3AB382A20212C00BE1EA8 /* CartViewControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8BA3AB372A20212C00BE1EA8 /* CartViewControllerTests.swift */; };
D15EDF12282BF7FB00FC13D6 /* Product+CoreDataProperties.swift in Sources */ = {isa = PBXBuildFile; fileRef = D15EDF11282BF7FB00FC13D6 /* Product+CoreDataProperties.swift */; };
Expand Down Expand Up @@ -38,24 +39,20 @@
/* End PBXContainerItemProxy section */

/* Begin PBXFileReference section */
57BE79023D12DCDCB69BA73D /* Pods-EmpowerPlant.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-EmpowerPlant.release.xcconfig"; path = "Target Support Files/Pods-EmpowerPlant/Pods-EmpowerPlant.release.xcconfig"; sourceTree = "<group>"; };
74014747DE857D26E9BD7B24 /* Pods_EmpowerPlant.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_EmpowerPlant.framework; sourceTree = BUILT_PRODUCTS_DIR; };
843BD60E2AD08CE900B0098F /* Utils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Utils.swift; sourceTree = "<group>"; };
843BD6262AD7798C00B0098F /* jwt-deep-field.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "jwt-deep-field.png"; sourceTree = "<group>"; };
846BEA1A2ABE46880032F77F /* upload-symbols.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = "upload-symbols.sh"; sourceTree = "<group>"; };
8474F0482ACCE2D800F21E06 /* deploy_project.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = deploy_project.sh; sourceTree = "<group>"; };
846BEA1B2ABE611A0032F77F /* mobydick.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = mobydick.txt; sourceTree = "<group>"; };
8474F0482ACCE2D800F21E06 /* deploy_project.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = deploy_project.sh; sourceTree = "<group>"; };
8474F04D2ACE54F300F21E06 /* .github */ = {isa = PBXFileReference; lastKnownFileType = folder; path = .github; sourceTree = "<group>"; };
84A264182AA9155800A62A88 /* Makefile */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.make; path = Makefile; sourceTree = "<group>"; };
84A264192AA915B100A62A88 /* Brewfile */ = {isa = PBXFileReference; lastKnownFileType = text; path = Brewfile; sourceTree = "<group>"; };
84A2641A2AA915B100A62A88 /* Gemfile */ = {isa = PBXFileReference; lastKnownFileType = text; path = Gemfile; sourceTree = "<group>"; };
84A2641B2AA915D800A62A88 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
84A2641C2AA9165A00A62A88 /* EmpowerPlant.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = EmpowerPlant.app; sourceTree = BUILT_PRODUCTS_DIR; };
84A2641D2AA9165A00A62A88 /* EmpowerPlantTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = EmpowerPlantTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
84A2641E2AA926A300A62A88 /* .env */ = {isa = PBXFileReference; lastKnownFileType = text; path = .env; sourceTree = "<group>"; };
8B21663B29D3F8C80009C890 /* RandomErrors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RandomErrors.swift; sourceTree = "<group>"; };
8BA3AB372A20212C00BE1EA8 /* CartViewControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CartViewControllerTests.swift; sourceTree = "<group>"; };
CC58FA1A8A084A40FC763820 /* Pods-EmpowerPlant.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-EmpowerPlant.debug.xcconfig"; path = "Target Support Files/Pods-EmpowerPlant/Pods-EmpowerPlant.debug.xcconfig"; sourceTree = "<group>"; };
D15EDF11282BF7FB00FC13D6 /* Product+CoreDataProperties.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Product+CoreDataProperties.swift"; sourceTree = "<group>"; };
D15EDF13282BF80400FC13D6 /* Product+CoreDataClass.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Product+CoreDataClass.swift"; sourceTree = "<group>"; };
D15FCDA827E00F0D00258BF3 /* Model.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = Model.xcdatamodel; sourceTree = "<group>"; };
Expand Down Expand Up @@ -83,7 +80,8 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
674899180B469D888700A555 /* Pods_EmpowerPlant.framework in Frameworks */,
848716A32AD8C3CD00756467 /* BigInt in Frameworks */,
848716B72ADFAA2000756467 /* Sentry in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -98,14 +96,6 @@
path = EmpowerPlantTests;
sourceTree = "<group>";
};
A2BF5384A6D041CDB3FCA8D9 /* Frameworks */ = {
isa = PBXGroup;
children = (
74014747DE857D26E9BD7B24 /* Pods_EmpowerPlant.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
D17C73A627D8291D006650AF = {
isa = PBXGroup;
children = (
Expand All @@ -114,13 +104,10 @@
84A2641E2AA926A300A62A88 /* .env */,
846BEA1A2ABE46880032F77F /* upload-symbols.sh */,
84A264192AA915B100A62A88 /* Brewfile */,
84A2641A2AA915B100A62A88 /* Gemfile */,
84A264182AA9155800A62A88 /* Makefile */,
84A2641B2AA915D800A62A88 /* README.md */,
D17C73B127D8291D006650AF /* EmpowerPlant */,
8BA3AB2D2A201FE900BE1EA8 /* EmpowerPlantTests */,
A2BF5384A6D041CDB3FCA8D9 /* Frameworks */,
DBBFE14A41453664EF0F8F57 /* Pods */,
84A2641C2AA9165A00A62A88 /* EmpowerPlant.app */,
84A2641D2AA9165A00A62A88 /* EmpowerPlantTests.xctest */,
);
Expand Down Expand Up @@ -150,15 +137,6 @@
path = EmpowerPlant;
sourceTree = "<group>";
};
DBBFE14A41453664EF0F8F57 /* Pods */ = {
isa = PBXGroup;
children = (
CC58FA1A8A084A40FC763820 /* Pods-EmpowerPlant.debug.xcconfig */,
57BE79023D12DCDCB69BA73D /* Pods-EmpowerPlant.release.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
Expand All @@ -184,18 +162,20 @@
isa = PBXNativeTarget;
buildConfigurationList = D17C73C327D8291D006650AF /* Build configuration list for PBXNativeTarget "EmpowerPlant" */;
buildPhases = (
C23F49D22CAB6B4570AD18F4 /* [CP] Check Pods Manifest.lock */,
D17C73AB27D8291D006650AF /* Sources */,
D17C73AC27D8291D006650AF /* Frameworks */,
D17C73AD27D8291D006650AF /* Resources */,
64CD5DF2D474DFE9B615DAE0 /* [CP] Embed Pods Frameworks */,
21715E6128A2D59700248175 /* [Sentry] Upload debug symbols */,
);
buildRules = (
);
dependencies = (
);
name = EmpowerPlant;
packageProductDependencies = (
848716A22AD8C3CD00756467 /* BigInt */,
848716B62ADFAA2000756467 /* Sentry */,
);
productName = EmpowerPlant;
productReference = 84A2641C2AA9165A00A62A88 /* EmpowerPlant.app */;
productType = "com.apple.product-type.application";
Expand Down Expand Up @@ -227,6 +207,10 @@
Base,
);
mainGroup = D17C73A627D8291D006650AF;
packageReferences = (
848716A12AD8C3CD00756467 /* XCRemoteSwiftPackageReference "BigInt" */,
848716B52ADFAA2000756467 /* XCRemoteSwiftPackageReference "sentry-cocoa" */,
);
productRefGroup = D17C73A627D8291D006650AF;
projectDirPath = "";
projectRoot = "";
Expand Down Expand Up @@ -280,45 +264,6 @@
shellPath = /bin/sh;
shellScript = "./upload-symbols.sh\n";
};
64CD5DF2D474DFE9B615DAE0 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-EmpowerPlant/Pods-EmpowerPlant-frameworks-${CONFIGURATION}-input-files.xcfilelist",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
"${PODS_ROOT}/Target Support Files/Pods-EmpowerPlant/Pods-EmpowerPlant-frameworks-${CONFIGURATION}-output-files.xcfilelist",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-EmpowerPlant/Pods-EmpowerPlant-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
C23F49D22CAB6B4570AD18F4 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-EmpowerPlant-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */

/* Begin PBXSourcesBuildPhase section */
Expand Down Expand Up @@ -537,7 +482,6 @@
};
D17C73C427D8291D006650AF /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = CC58FA1A8A084A40FC763820 /* Pods-EmpowerPlant.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
Expand All @@ -558,7 +502,6 @@
};
D17C73C527D8291D006650AF /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 57BE79023D12DCDCB69BA73D /* Pods-EmpowerPlant.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
Expand Down Expand Up @@ -609,6 +552,38 @@
};
/* End XCConfigurationList section */

/* Begin XCRemoteSwiftPackageReference section */
848716A12AD8C3CD00756467 /* XCRemoteSwiftPackageReference "BigInt" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/attaswift/BigInt";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 5.1.0;
};
};
848716B52ADFAA2000756467 /* XCRemoteSwiftPackageReference "sentry-cocoa" */ = {
isa = XCRemoteSwiftPackageReference;
repositoryURL = "https://github.com/getsentry/sentry-cocoa";
requirement = {
kind = upToNextMajorVersion;
minimumVersion = 8.13.1;
};
};
/* End XCRemoteSwiftPackageReference section */

/* Begin XCSwiftPackageProductDependency section */
848716A22AD8C3CD00756467 /* BigInt */ = {
isa = XCSwiftPackageProductDependency;
package = 848716A12AD8C3CD00756467 /* XCRemoteSwiftPackageReference "BigInt" */;
productName = BigInt;
};
848716B62ADFAA2000756467 /* Sentry */ = {
isa = XCSwiftPackageProductDependency;
package = 848716B52ADFAA2000756467 /* XCRemoteSwiftPackageReference "sentry-cocoa" */;
productName = Sentry;
};
/* End XCSwiftPackageProductDependency section */

/* Begin XCVersionGroup section */
D15FCDA727E00F0D00258BF3 /* Model.xcdatamodeld */ = {
isa = XCVersionGroup;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{
"pins" : [
{
"identity" : "bigint",
"kind" : "remoteSourceControl",
"location" : "https://github.com/attaswift/BigInt",
"state" : {
"revision" : "0ed110f7555c34ff468e72e1686e59721f2b0da6",
"version" : "5.3.0"
}
},
{
"identity" : "sentry-cocoa",
"kind" : "remoteSourceControl",
"location" : "https://github.com/getsentry/sentry-cocoa",
"state" : {
"revision" : "008325304ada69fa32aa7aeba967b65984f30569",
"version" : "8.14.2"
}
}
],
"version" : 2
}
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,18 @@
argument = "--wipe-db"
isEnabled = "NO">
</CommandLineArgument>
<CommandLineArgument
argument = "--no-debug-mode-in-debug-build"
isEnabled = "NO">
</CommandLineArgument>
<CommandLineArgument
argument = "--debug-mode-in-release-build"
isEnabled = "NO">
</CommandLineArgument>
<CommandLineArgument
argument = "--disable-swizzling"
isEnabled = "NO">
</CommandLineArgument>
</CommandLineArguments>
<EnvironmentVariables>
<EnvironmentVariable
Expand Down
13 changes: 0 additions & 13 deletions EmpowerPlant.xcworkspace/contents.xcworkspacedata

This file was deleted.

This file was deleted.

Binary file not shown.

This file was deleted.

23 changes: 15 additions & 8 deletions EmpowerPlant/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -15,28 +15,35 @@ class AppDelegate: UIResponder, UIApplicationDelegate {


func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.

// the Sentry default is to enable swizzling. we'll use that as our default as well. we check for the launch arg to disable swizzling; if it's provided, then we'll disable swizzling. if it's absent, then swizzling will be enabled.
let enableSwizzling = !ProcessInfo.processInfo.arguments.contains("--disable-swizzling")

SentrySDK.start { options in
options.dsn = "https://[email protected]/6249899"

// set the SDK debug mode according to defaults and overrides.
#if DEBUG
options.debug = true
// in debug builds, we default to enabling debug mode. the launch arg --no-debug-mode-in-debug-build is a way to override that and turn it off, like if you don't want to see the logs in the xcode console.
options.debug = !ProcessInfo.processInfo.arguments.contains("--no-debug-mode-in-debug-build")
#else
// in release builds, we default to disabling debug mode. the launch arg --debug-mode-in-release-build is a way to override that and turn it on.
options.debug = ProcessInfo.processInfo.arguments.contains("--debug-mode-in-release-build")
#endif

// Set tracesSampleRate to 1.0 to capture 100% of transactions for performance monitoring.
// We recommend adjusting this value in production.
options.tracesSampleRate = 1.0
options.profilesSampleRate = 1.0
options.enableCoreDataTracing = true
options.enableFileIOTracing = true
options.attachScreenshot = true
options.attachViewHierarchy = true
options.enableTimeToFullDisplayTracing = true
options.enableAutoPerformanceTracing = true
options.enableUserInteractionTracing = false

options.enableSwizzling = enableSwizzling

}
SentrySDK.configureScope{ scope in
scope.setTag(value: ["corporate", "enterprise", "self-serve"].randomElement() ?? "unknown", key: "customer.type")
scope.setTag(value: ProcessInfo.processInfo.environment["USER"] ?? "tda", key: "se")
scope.setTag(value: "\(enableSwizzling)", key: "enableSwizzling")
}

if ProcessInfo.processInfo.arguments.contains("--wipe-db") {
Expand Down
Loading
Loading