-
-
Notifications
You must be signed in to change notification settings - Fork 341
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
fix: Missing UIViewController traces with Xcode 16 #4523
fix: Missing UIViewController traces with Xcode 16 #4523
Conversation
Xcode 16 introduces a new flag ENABLE_DEBUG_DYLIB. If this flag is enabled, debug builds of app and app extension targets on supported platforms and SDKs will be built with the main binary code in a separate “NAME.debug.dylib”. Our swizzling logic for UIViewControllers sometimes skipped swizzling the UIViewControllers in that debug.dylib binary. This is fixed now, by swizzling all matching inAppInclude binary images that the binary image cache returns and not only the first one.
🚨 Detected changes in high risk code 🚨High-risk code can easily blow up and is hard to test. We had severe bugs in the past. Be extra careful when changing these files, and have an extra careful look at these:
|
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #4523 +/- ##
=============================================
+ Coverage 91.513% 91.516% +0.003%
=============================================
Files 615 615
Lines 69460 69512 +52
Branches 24896 24924 +28
=============================================
+ Hits 63565 63615 +50
- Misses 5802 5804 +2
Partials 93 93
... and 9 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
|
Performance metrics 🚀
|
Revision | Plain | With Sentry | Diff |
---|---|---|---|
6bc5ae5 | 1207.23 ms | 1216.66 ms | 9.43 ms |
65e48e0 | 1223.68 ms | 1238.96 ms | 15.28 ms |
5616e0a | 1224.12 ms | 1249.86 ms | 25.74 ms |
6943de0 | 1230.02 ms | 1235.32 ms | 5.30 ms |
3db3e35 | 1233.52 ms | 1256.43 ms | 22.90 ms |
aea5987 | 1223.84 ms | 1244.39 ms | 20.55 ms |
ed49f0c | 1245.67 ms | 1261.15 ms | 15.48 ms |
20a828b | 1211.33 ms | 1228.00 ms | 16.67 ms |
af1f4dd | 1225.39 ms | 1245.48 ms | 20.09 ms |
50bb751 | 1234.10 ms | 1248.29 ms | 14.19 ms |
App size
Revision | Plain | With Sentry | Diff |
---|---|---|---|
6bc5ae5 | 20.76 KiB | 401.39 KiB | 380.63 KiB |
65e48e0 | 21.90 KiB | 708.34 KiB | 686.44 KiB |
5616e0a | 22.85 KiB | 407.44 KiB | 384.59 KiB |
6943de0 | 20.76 KiB | 393.33 KiB | 372.57 KiB |
3db3e35 | 21.58 KiB | 419.21 KiB | 397.63 KiB |
aea5987 | 21.58 KiB | 418.13 KiB | 396.54 KiB |
ed49f0c | 21.58 KiB | 632.13 KiB | 610.55 KiB |
20a828b | 21.58 KiB | 670.99 KiB | 649.41 KiB |
af1f4dd | 22.85 KiB | 414.71 KiB | 391.86 KiB |
50bb751 | 21.58 KiB | 417.86 KiB | 396.27 KiB |
🚨 Detected changes in high risk code 🚨High-risk code can easily blow up and is hard to test. We had severe bugs in the past. Be extra careful when changing these files, and have an extra careful look at these:
|
📜 Description
Xcode 16 introduces a new flag ENABLE_DEBUG_DYLIB. If this flag is enabled, debug builds of app and app extension targets on supported platforms and SDKs will be built with the main binary code in a separate “NAME.debug.dylib”. Our swizzling logic for UIViewControllers sometimes skipped swizzling the UIViewControllers in that debug.dylib binary. This is fixed now, by swizzling all matching inAppInclude binary images that the binary image cache returns and not only the first one.
💡 Motivation and Context
A customer reported this problem.
💚 How did you test it?
Unit tests and sample app with Xcode 16.
📝 Checklist
You have to check all boxes before merging:
sendDefaultPII
is enabled.🔮 Next steps