Skip to content

Conversation

armcknight
Copy link
Member

@armcknight armcknight commented Jul 22, 2025

For #5648, fix compilation in extensions where we use UIApplication API, which is unavailable in certain extension contexts.

So far what I've done is set APPLICATION_EXTENSION_API_ONLY to YES in the Sentry target, which produced compilation failures in the expected places, and add the unavailability annotations until it compiled again.

Some options for validation are:

  • have a separate build workflow that compiles the SDK with that flag set
  • have iOS-Swift etc include some extension targets that link and use Sentry

Copy link

codecov bot commented Jul 22, 2025

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
3792 1 3791 12
View the top 1 failed test(s) by shortest run time
iOS_SwiftUI_UITests.FeedbackUITests::testWidgetDisplayInSwiftUIApp
Stack Traces | 0s run time
.../iOS-SwiftUI/iOS-SwiftUI-UITests/FeedbackUITests.swift:13 - Failed to get matching snapshots: Timed out while evaluating UI query.
View the full list of 1 ❄️ flaky tests
SentryTests.SentrySDKInternalTests::testStartOnTheMainThread

Flake rate in main: 28.57% (Passed 15 times, Failed 6 times)

Stack Traces | 0s run time
.../Tests/SentryTests/SentrySDKInternalTests.swift:706 - Asynchronous wait failed: Exceeded timeout of 1 seconds, with unfulfilled expectations: "MainThreadTestIntegration install called".

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

Copy link
Contributor

Performance metrics 🚀

  Plain With Sentry Diff
Startup time 1239.76 ms 1263.14 ms 23.38 ms
Size 23.75 KiB 904.44 KiB 880.70 KiB

Baseline results on branch: main

Startup times

Revision Plain With Sentry Diff
2481950 1221.04 ms 1248.98 ms 27.94 ms
a9fac2e 1212.45 ms 1219.67 ms 7.22 ms
99104c9 1224.84 ms 1247.08 ms 22.24 ms
7148f97 1235.09 ms 1258.07 ms 22.98 ms
6279992 1213.60 ms 1241.38 ms 27.79 ms
aa96485 1215.37 ms 1234.04 ms 18.67 ms
fc0757d 1231.83 ms 1248.98 ms 17.15 ms
7c7ac56 1225.90 ms 1250.22 ms 24.33 ms
8e3a42f 1222.90 ms 1245.67 ms 22.77 ms
51f74d7 1236.31 ms 1247.43 ms 11.12 ms

App size

Revision Plain With Sentry Diff
2481950 23.74 KiB 872.74 KiB 849.00 KiB
a9fac2e 23.75 KiB 879.53 KiB 855.78 KiB
99104c9 23.75 KiB 894.83 KiB 871.09 KiB
7148f97 23.75 KiB 854.78 KiB 831.03 KiB
6279992 23.75 KiB 891.03 KiB 867.28 KiB
aa96485 23.75 KiB 874.46 KiB 850.71 KiB
fc0757d 23.75 KiB 850.73 KiB 826.98 KiB
7c7ac56 23.75 KiB 902.49 KiB 878.74 KiB
8e3a42f 23.75 KiB 880.06 KiB 856.31 KiB
51f74d7 23.74 KiB 874.08 KiB 850.34 KiB

Copy link
Member

@philipphofmann philipphofmann left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for fixing this. Can we add a small sample app with an app extension to avoid a regression? It would be great to validate the fix.

@armcknight
Copy link
Member Author

armcknight commented Jul 23, 2025

@philipphofmann I'm working on the validation step. ETA: I just pushed up what I'd already done so far to #5696, but there are still some challenges associated with that.

armcknight and others added 3 commits July 23, 2025 09:31
Co-authored-by: Philipp Hofmann <philipp.hofmann@sentry.io>
Co-authored-by: Philipp Hofmann <philipp.hofmann@sentry.io>
@armcknight armcknight merged commit 84094e8 into main Jul 23, 2025
77 of 83 checks passed
@armcknight armcknight deleted the armcknight/fix/5648-extension-api branch July 23, 2025 21:26
@balavor
Copy link
Contributor

balavor commented Jul 31, 2025

Thank you for adding this. I believe that in the long term, it is entirely valid to continue using flags to mark features as unavailable for app extensions where they don't make sense or rely on UIApplication.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants