sentry-cocoa
sentry-cocoa copied to clipboard
feat: Sentry Swift framework
:scroll: Description
Create a Swift framework and expose the current one through it.
:bulb: Motivation and Context
see https://github.com/getsentry/sentry-cocoa/discussions/2160
:green_heart: How did you test it?
:pencil: Checklist
- [x] I reviewed the submitted code
- [ ] I added tests to verify the changes
- [ ] I updated the docs if needed
- [ ] Review from the native team if needed
- [ ] No breaking changes
:crystal_ball: Next steps
Messages | |
---|---|
:book: | Do not forget to update Sentry-docs with your feature once the pull request gets approved. |
Generated by :no_entry_sign: dangerJS against 1fa7dda810e02fcdd4994b0a6ed9855b8563b4a8
Performance metrics :rocket:
Plain | With Sentry | Diff | |
---|---|---|---|
Startup time | 1211.33 ms | 1248.42 ms | 37.09 ms |
Size | 20.75 KiB | 379.12 KiB | 358.36 KiB |
Previous results on branch: feat/swift
Startup times
Revision | Plain | With Sentry | Diff |
---|---|---|---|
0a45bd3f663ea14ed225558da776d801c843d9c3 | 1200.60 ms | 1231.56 ms | 30.96 ms |
fd49873aab91dcaf6f814716215b12cb84606f37 | 1235.04 ms | 1238.88 ms | 3.84 ms |
41b3651384d709183f96221f1baaf1cb77291652 | 1240.08 ms | 1252.82 ms | 12.74 ms |
40e71b80319ffc69396e58bd8ad28e4392c7d143 | 1231.78 ms | 1252.52 ms | 20.74 ms |
e71f14d5aee4d85a88c6f77b6cead199b76d0e06 | 1239.29 ms | 1263.86 ms | 24.57 ms |
3eaa8abf04fd330c06540a2cb7c8b2e9ed37269a | 1222.88 ms | 1256.54 ms | 33.67 ms |
d90630757305a3a6af70a13de7d3f7e1b284d635 | 1203.05 ms | 1235.82 ms | 32.77 ms |
6ae784dbdcba47f2e07334c2f79aeef323589df7 | 1223.80 ms | 1252.58 ms | 28.78 ms |
762bacb388b5d2d40313749dab6d99447a357dbe | 1235.85 ms | 1245.48 ms | 9.63 ms |
0fd99e1be8ac72d54984e5da66842edbecc851ca | 1238.14 ms | 1239.24 ms | 1.10 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
0a45bd3f663ea14ed225558da776d801c843d9c3 | 20.75 KiB | 371.95 KiB | 351.19 KiB |
fd49873aab91dcaf6f814716215b12cb84606f37 | 20.75 KiB | 379.11 KiB | 358.36 KiB |
41b3651384d709183f96221f1baaf1cb77291652 | 20.75 KiB | 378.65 KiB | 357.90 KiB |
40e71b80319ffc69396e58bd8ad28e4392c7d143 | 20.50 KiB | 340.09 KiB | 319.58 KiB |
e71f14d5aee4d85a88c6f77b6cead199b76d0e06 | 20.50 KiB | 340.09 KiB | 319.58 KiB |
3eaa8abf04fd330c06540a2cb7c8b2e9ed37269a | 20.50 KiB | 341.52 KiB | 321.02 KiB |
d90630757305a3a6af70a13de7d3f7e1b284d635 | 20.75 KiB | 371.95 KiB | 351.20 KiB |
6ae784dbdcba47f2e07334c2f79aeef323589df7 | 20.50 KiB | 341.56 KiB | 321.06 KiB |
762bacb388b5d2d40313749dab6d99447a357dbe | 20.75 KiB | 371.95 KiB | 351.19 KiB |
0fd99e1be8ac72d54984e5da66842edbecc851ca | 20.50 KiB | 341.53 KiB | 321.03 KiB |
Projects using Carthage will be required to add both Sentry and SentryObjc frameworks as dependencies.
@philipphofmann @andrewlvovsky @kahest This PR is ready for review. The changes here are most related to the Workspace configuration to support swift in the project
We decide that we're fine having swift class public in a different module, called SentryPrivate. For this to happen we need an extra cocoapod library. SPM and Carthage will work like this out of the box.
With this approach, classes from SentryPrivate will not be available when users import Sentry. We don't mind breaking changes in SentryPrivate, because this is not meant to be use by the user, we going to point this out in the docs.
Participants: @philipphofmann @kahest @brustolin
We have two options.
- Coordinate some tests across SDKs
- Create an integration CI test in our repo that downloads hybrids SDK sample and try to run it.
The second one will be kind heavy thing to add into our daily process.
Let's merge this to the 8.0.0 branch once we create it. I still would like to release a hotfix with https://github.com/getsentry/sentry-cocoa/pull/2398 before that.