sentry-dart icon indicating copy to clipboard operation
sentry-dart copied to clipboard

[iOS] unable to see Sentry issues and User Feedback when using --release mode

Open ksmets opened this issue 2 months ago • 27 comments

Platform

Flutter Mobile iOS

Obfuscation

Disabled

Debug Info

Disabled

Doctor

Flutter 3.35.6 • channel stable • https://github.com/flutter/flutter.git Framework • revision 9f455d2486 (2 weeks ago) • 2025-10-08 14:55:31 -0500 Engine • hash a5f2c36e367c13f868cfe98db5806f562c52c35e (revision d2913632a4) (15 days ago) • 2025-10-07 17:26:21.000Z Tools • Dart 3.9.2 • DevTools 2.48.0

Version

9.7.0

Steps to Reproduce

On real iOS device running flutter run --release Sentry issues nor submitted user feedback shows up at sentry.io nor debug logs are send to the Console app. Building and running in --debug mode reveals debug logs.

On Android devices both --debug as --release mode work.

This is how the Sentry SDK is initialized:

 await SentryFlutter.init(
    (options) {
      options.navigatorKey = navigatorKey;
      // Enable debug mode to write diagnostic messages
      options.debug = true;//kDebugMode;
      // By default it's already the most verbose level: Debug
      // You can use this make this less noisy by changing it to
      // a less verbose level such as `Information` or `Warning`.
      options.diagnosticLevel = SentryLevel.debug;
      // Set tracesSampleRate to 1.0 to capture 100% of transactions for tracing.
      // We recommend adjusting this value in production.
      options.tracesSampleRate = 1.0;
      // The sampling rate for profiling is relative to tracesSampleRate
      // Setting to 1.0 will profile 100% of sampled transactions:
      // Note: Profiling alpha is available for iOS and macOS since SDK version 7.12.0
      options.profilesSampleRate = 1.0;
      // Take a screenshot of the application when an error happens and include it as an attachment.
      options.attachScreenshot = true;
      // Disable masking for Screenshots and Session Replay.
      options.privacy.maskAllText = false;
      options.privacy.maskAllImages = false;
      options.beforeSendFeedback = (event, hint) {
        print('SENTRY USER FEEDBACK $event');
        return event;
      };
      options.beforeSend = (event, hint) {
        print('SENTRY EVENT $event');
        return event;
      };

Expected Result

See above.

Actual Result

See above.

Are you willing to submit a PR?

None

ksmets avatar Oct 22 '25 18:10 ksmets

DART-240

linear[bot] avatar Oct 22 '25 18:10 linear[bot]

hey thanks for the issue, we'll have a look

buenaflor avatar Oct 22 '25 21:10 buenaflor

Sorry, for the confusion. It's when you build an IPA and try to run that on iOS device that it no longer works. We do see lines printed related to print('SENTRY USER FEEDBACK $event'); but no other logs (e.g. about Sentry envelopes,...)

ksmets avatar Oct 23 '25 08:10 ksmets

@ksmets is this happening only for feedback or also for errors?

buenaflor avatar Oct 23 '25 08:10 buenaflor

Also for the other errors, and also there we see only the beforeSend print statements.

ksmets avatar Oct 23 '25 08:10 ksmets

Debug Output

Using flutter run from the command line does not print debug output. This seems to be a flutter issue. It does work using Xcode. Android does work using the command line.

flutter run

flutter run --debug - iOS Device

❌ No debug output

flutter run --release - iOS Device

❌ No debug output

flutter run --debug - iOS Simulator

❌ No debug output

flutter run --release - iOS Simulator

❌ Releasemode is not supported by iPhone 17 Pro.

flutter run --debug - Android Emulator

✅ Debug output

D/Sentry  ( 4449): Adding Envelope to offline storage: /data/user/0/com.example.ios_release_ipa_no_errors/cache/sentry/71b8cb8dcc610ac1e09eac6b53b3df8db0efcd13/52136906daaf4b3286e19eea9b861684.envelope
D/Sentry  ( 4449): Serializing object: {
D/Sentry  ( 4449):      "sid": "590dfc10343e43dc9db5a288362c83eb",
D/Sentry  ( 4449):      "did": "96bdb18e2d8d403ca6d8fe22feafd3d4",
D/Sentry  ( 4449):      "started": "2025-10-27T10:37:02.329Z",
D/Sentry  ( 4449):      "status": "ok",
D/Sentry  ( 4449):      "seq": 1761561422355,
D/Sentry  ( 4449):      "errors": 1,
D/Sentry  ( 4449):      "timestamp": "2025-10-27T10:37:02.355Z",
D/Sentry  ( 4449):      "attrs": {
D/Sentry  ( 4449):              "release": "[email protected]+1",
D/Sentry  ( 4449):              "environment": "debug"
D/Sentry  ( 4449):      }
D/Sentry  ( 4449): }
I/Sentry  ( 4449): No permission (ACCESS_NETWORK_STATE) to check network status.
D/TrafficStats( 4449): tagSocket(5) with statsTag=0xf001, statsUid=-1
D/Sentry  ( 4449): Envelope sent successfully.
D/Sentry  ( 4449): Discarding envelope from cache: /data/user/0/com.example.ios_release_ipa_no_errors/cache/sentry/71b8cb8dcc610ac1e09eac6b53b3df8db0efcd13/52136906daaf4b3286e19eea9b861684.envelope
D/Sentry  ( 4449): Envelope flushed

`Xcode

Xcode Debug Scheme - iOS Simulator

✅ Debug output

[Sentry] [debug] [1761561756.99867] [SentryFileManager:80] No file to delete at /Users/denis/Library/Developer/CoreSimulator/Devices/0F2B86DE-996F-4DB7-9C89-29A7622A19C6/data/Containers/Data/Application/3AD4FD9B-AE1A-4D07-805A-96FBE035FF6E/Library/Caches/io.sentry/71b8cb8dcc610ac1e09eac6b53b3df8db0efcd13/previous.app.state
[Sentry] [debug] [1761561756.998769] [SentryFileManager:1005] Moving state /Users/denis/Library/Developer/CoreSimulator/Devices/0F2B86DE-996F-4DB7-9C89-29A7622A19C6/data/Containers/Data/Application/3AD4FD9B-AE1A-4D07-805A-96FBE035FF6E/Library/Caches/io.sentry/71b8cb8dcc610ac1e09eac6b53b3df8db0efcd13/breadcrumbs.1.state to previous /Users/denis/Library/Developer/CoreSimulator/Devices/0F2B86DE-996F-4DB7-9C89-29A7622A19C6/data/Containers/Data/Application/3AD4FD9B-AE1A-4D07-805A-96FBE035FF6E/Library/Caches/io.sentry/71b8cb8dcc610ac1e09eac6b53b3df8db0efcd13/previous.breadcrumbs.1.state.
[Sentry] [debug] [1761561756.998811] [SentryFileManager:80] No file to delete at /Users/denis/Library/Developer/CoreSimulator/Devices/0F2B86DE-996F-4DB7-9C89-29A7622A19C6/data/Containers/Data/Application/3AD4FD9B-AE1A-4D07-805A-96FBE035FF6E/Library/Caches/io.sentry/71b8cb8dcc610ac1e09eac6b53b3df8db0efcd13/previous.breadcrumbs.1.state
[Sentry] [debug] [1761561756.998888] [SentryFileManager:1005] Moving state /Users/denis/Library/Developer/CoreSimulator/Devices/0F2B86DE-996F-4DB7-9C89-29A7622A19C6/data/Containers/Data/Application/3AD4FD9B-AE1A-4D07-805A-96FBE035FF6E/Library/Caches/io.sentry/71b8cb8dcc610ac1e09eac6b53b3df8db0efcd13/breadcrumbs.2.state to previous /Users/denis/Library/Developer/CoreSimulator/Devices/0F2B86DE-996F-4DB7-9C89-29A7622A19C6/data/Containers/Data/Application/3AD4FD9B-AE1A-4D07-805A-96FBE035FF6E/Library/Caches/io.sentry/71b8cb8dcc610ac1e09eac6b53b3df8db0efcd13/previous.breadcrumbs.2.state.
[Sentry] [debug] [1761561756.998929] [SentryFileManager:80] No file to delete at

Xcode Release Scheme - iOS Simulator

✅ Debug output

[Sentry] [debug] [1761562029.856271] [SentryRequestOperation:37] Request status: 200
[Sentry] [debug] [1761562029.856313] [SentryRequestOperation:43] Request response: {"id":"617f75209aa540708e73be61cb7afe5a"}
[Sentry] [debug] [1761562029.856326] [SentryQueueableRequestManager:55] Queued requests: 0
[Sentry] [debug] [1761562029.856349] [SentryHttpTransport:424] Envelope sent successfully!
[Sentry] [debug] [1761562029.856357] [SentryHttpTransport:379] Deleting envelope and sending next.
[Sentry] [debug] [1761562029.8568] [SentryFileManager:78] Successfully deleted file at

Xcode Debug Scheme - iOS Device

✅ Debug output

[Sentry] [debug] [1761562645.201013] Constructed request: SentryURLRequestFactory
[Sentry] [debug] [1761562645.738379] [SentryRequestOperation:37] Request status: 200
[Sentry] [debug] [1761562645.738624] [SentryRequestOperation:43] Request response: {}
[Sentry] [debug] [1761562645.738659] [SentryQueueableRequestManager:55] Queued requests: 0
[Sentry] [debug] [1761562645.738698] [SentryHttpTransport:424] Envelope sent successfully!
[Sentry] [debug] [1761562645.7387118] [SentryHttpTransport:379] Deleting envelope and sending next.
[Sentry] [debug] [1761562645.7395191] [SentryFileManager:78] Successfully deleted file at

Xcode Release Scheme - iOS Device

✅ Debug output

[Sentry] [debug] [1761562693.411695] [SentryRequestOperation:37] Request status: 200
[Sentry] [debug] [1761562693.411792] [SentryRequestOperation:43] Request response: {}
[Sentry] [debug] [1761562693.4118629] [SentryQueueableRequestManager:55] Queued requests: 0
[Sentry] [debug] [1761562693.411926] [SentryHttpTransport:424] Envelope sent successfully!
[Sentry] [debug] [1761562693.411948] [SentryHttpTransport:379] Deleting envelope and sending next.
[Sentry] [debug] [1761562693.4129891] [SentryFileManager:78] Successfully deleted file at

denrase avatar Oct 27 '25 12:10 denrase

Sentry Errors & UserFeedback

These work in all combinations.

flutter run release/debug

User Feedback - Debug

✅ Shows up on Sentry.io

https://denrase.sentry.io/issues/feedback/?feedbackSlug=flutter_repro%3A6976876998&mailbox=ignored&project=4508958566055936&referrer=feedback_list_page&statsPeriod=1h

User Feedback - Release

✅ Shows up on Sentry.io

https://denrase.sentry.io/issues/feedback/?feedbackSlug=flutter_repro%3A6976880087&mailbox=ignored&project=4508958566055936&referrer=feedback_list_page&statsPeriod=24h

Error - Debug

✅ Shows up on Sentry.io

https://denrase.sentry.io/issues/6976646636/?project=4508958566055936&query=is%3Aunresolved&referrer=issue-stream

Error - Release

✅ Shows up on Sentry.io

https://denrase.sentry.io/issues/6976646636/events/e077dfee3c154889987197bf8e077bcb/?project=4508958566055936&query=is%3Aunresolved&referrer=previous-event

flutter build ipa --export-method development

Installed with ios-deploy

ios-deploy --bundle build/ios/ipa/ios_release_ipa_no_errors.ipa

Error - Release

✅ Shows up on Sentry.io

https://denrase.sentry.io/issues/6976646636/events/latest/?project=4508958566055936&query=is%3Aunresolved&referrer=latest-event

User Feedback - Release

✅ Shows up on Sentry.io

https://denrase.sentry.io/issues/feedback/?feedbackSlug=flutter_repro%3A6976904266&mailbox=ignored&project=4508958566055936&referrer=feedback_list_page&statsPeriod=24h

denrase avatar Oct 27 '25 12:10 denrase

I could not reproduce the issue where errors/user feedback are missing. They work for me in all possible scenarios.

Debug output for iOS does indeed not work when using flutter run, but this seems to be a flutter issue, not Sentry related. The whole debug output is visible when running with Xcode directly.

I created a new app using flutter create and setup sentry using the Sentry Wizard

@ksmets You have mentioned the following.

Sorry, for the confusion. It's when you build an IPA and try to run that on iOS device that it no longer works.

How exactly did you run the app and which aspects do not work for you?

denrase avatar Oct 27 '25 12:10 denrase

This issue has gone three weeks without activity. In another week, I will close it.

But! If you comment or otherwise update it, I will reset the clock, and if you remove the label Waiting for: Community, I will leave it alone ... forever!


"A weed is but an unloved flower." ― Ella Wheeler Wilcox 🥀

getsantry[bot] avatar Nov 19 '25 08:11 getsantry[bot]

@ksmets can you try checking your stripping symbol config: https://docs.flutter.dev/platform-integration/ios/c-interop#stripping-ios-symbols

buenaflor avatar Nov 29 '25 12:11 buenaflor

@ksmets I'm trying to repro this issue. do you have specific optimizations enabled in xcode?

buenaflor avatar Dec 01 '25 14:12 buenaflor

Thx @buenaflor, I will try to follow up on this issue tomorrow and provide you the details, what I can already say is that it's a default flutter config, except that I tweaked the pod file to be able to statically link another third-party library, while sentry needs to be linked dynamically.

ksmets avatar Dec 01 '25 20:12 ksmets

@ksmets thanks that would be really helpful

you mean have to dynamically link Sentry because of this issue?

buenaflor avatar Dec 01 '25 20:12 buenaflor

No @buenaflor, the other third library needs to be statically linked. If I link all libraries statically then a sentry log makes the app fail with access violation (debug and release mode). If I ensure that Sentry is dynamically linked, as it is default the case, then the apps can start without problems, but I only see sentry issues appear in debug mode.

I have the default optimizations in place for release and profile: Fastest, Smallest -Os.

However, if set STRIP_STYLE = "non-global", Sentry issues works both in debug and release mode, without changing optimization level.

ksmets avatar Dec 02 '25 10:12 ksmets

@ksmets thanks for the details

Is it an issue only in testflight or also if you build the ipa and export it locally and install it on a physical device? e.g via flutter build ipa --export-method development

buenaflor avatar Dec 02 '25 11:12 buenaflor

But bottom line is we introduced using FFI in 9.7.0 and it seems xcode strips some symbols that are needed when building for release and therefore sending envelopes actually no-ops. STRIP_STYLE = "non-global" ensures these are not stripped from the build.

Right now we're trying to find out if there are some specific conditions for this to happen because we do see iOS data coming in from 9.7.0 and 9.8.0 so it's not happening for everybody

buenaflor avatar Dec 02 '25 11:12 buenaflor

Is it an issue only in testflight or also if you build the ipa and export it locally and install it on a physical device? e.g via flutter build ipa --export-method development

flutter build ipa --release --export-options-plist=ios/ExportOptions-development.plist and then installed locally on the device via xcode.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>method</key>
  <string>development</string>
  <key>provisioningProfiles</key>
  <dict>
    <key>ai.runeasi.app.development</key>
    <string>match Development ai.runeasi.app.development</string>
  </dict>
  <key>signingCertificate</key>
  <string>Apple Development: Koen Smets (2F8698L2D9)</string>
  <key>signingStyle</key>
  <string>manual</string>
  <key>teamID</key>
  <string>2D789C46LZ</string>
</dict>
</plist>

I also confirmed that I now works on TestFlight builds, with app-store provisioning method and distribution profiles.

Right now we're trying to find out if there are some specific conditions for this to happen because we do see iOS data coming in from 9.7.0 and 9.8.0 so it's not happening for everybody

I can reproduce with minimal app like suggested by @denrase, first flutter create then integrate with sentry-wizard. Without altering strip style it doesn't send anything in release builds which is fixed by stripping only the non-global symbols.

ksmets avatar Dec 02 '25 12:12 ksmets

@ksmets Just tried again with the minimal setup and it still works for me (flutter run --release and also archivin with xcode and TestFlight), even with leaving stripping as-is. -.- Are you integrating flutter with cocoapods or SPM? What Xcode version are you using?

denrase avatar Dec 02 '25 12:12 denrase

To be clear flutter run --release also works for me, it's only when building and installing ipa that things go wrong.

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.38.3, on macOS 26.1 25B78 darwin-arm64, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 36.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 26.1.1)
[✓] Chrome - develop for the web
[✓] Connected device (2 available)
[✓] Network resources

• No issues found!

I'm still using plain podfile, no swift package manager yet.

ksmets avatar Dec 02 '25 14:12 ksmets

Thank you. I added a sample project and added in the README how i tested it. I was not able to pinpoint the exact setting that is the culprit.

https://github.com/denrase/sentry_no_errors_repro

You can check it out with your DSN and check if you see the issui on sentry.io.

Could you also send me you repro-project where it fails? Then we could compare project settings.

denrase avatar Dec 02 '25 16:12 denrase

I was able to repro the issue.

This is the error:

Invalid argument(s): Couldn't resolve native function 'DOBJC_initializeApi' in 'objective_c.framework/ objective_c'

I'm trying to see if we can fix this without the stripping style change

If not we will revert the FFI usage for iOS/macOS

buenaflor avatar Dec 02 '25 17:12 buenaflor

@ksmets After a lot of trial and error I think we found the issue. If frameworks are linked statically in the Podfile, the strip style needs to be set to non-globals.

target 'Runner' do
  use_frameworks! :linkage => :static

When :linkage => :static is removed, it works regardless of strip style. Tested with IPA/TestFlight.

Can you confirm that you are linking sentry statically?

denrase avatar Dec 03 '25 14:12 denrase

@ksmets In any case, wa are looking to revert FFI usage for now, as this is a breaking change. Thanks for bringing this up and sorry I was not able to reproduce this when checking this out the first time. 🙇‍♂️

denrase avatar Dec 03 '25 15:12 denrase

No, I'm explicitly dynamic linkage of Sentry, but another closed source 3rd party library is linked statically.

dynamic_framework = ['Sentry']

pre_install do |installer|
  installer.pod_targets.each {| pod |
    if dynamic_framework.include?(pod.name)
      Pod::Installer::Xcode::TargetValidator.send(:define_method, :verify_no_static_framework_transitive_dependencies) {}
      puts "turn to dynamic framework name:" + pod.name
      def pod.dynamic_framework;
        true
      end
      def pod.build_type;
        Pod::BuildType.dynamic_framework
      end
    end
  }
end

target 'Runner' do
  use_modular_headers!
  use_frameworks! :linkage => :static

  pod 'Movesense', :git => 'https://bitbucket.org/movesense/movesense-mobile-lib.git'

  flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
  target 'RunnerTests' do
    inherit! :search_paths
  end
end

I'd rather use_frameworks! :linkage => :static, without the dynamic framework patching, but then the app crashes very soon during initialization of movesense library on a logDebug statement. Nevertheless, I think that's more blame to put on the Movesense library then on Sentry package. As Movesense library is closed source I cannot find another workaround then ensuring Sentry is linked dynamically. Following the hints given on https://bitbucket.org/movesense/movesense-mobile-lib/issues/119/cannot-use-health-and-mdsflutter-depending

For now I'll just strip the non-global symbols.

ksmets avatar Dec 03 '25 17:12 ksmets

This is the stacktrace at the moment of the crash:

Thread 1 Queue : com.apple.main-thread (serial)
#0	0x0000000198309118 in objc_retain ()
#1	0x000000019830d360 in objc_storeStrong ()
#2	0x00000001017937f8 in logDebug at /Users/ksmets/Repositories/github.com/ksmets/app/ios/Pods/Sentry/Sources/Sentry/SentryLogC.m:50
#3	0x0000000101651064 in -[WBCentral setDeviceDiscovery:] ()
#4	0x0000000101559ebc in -[MDSWrapper init:centralManager:deviceUUIDs:] ()
#5	0x0000000101559a80 in -[MDSWrapper init] ()
#6	0x0000000101ae18b0 in @nonobjc MDSWrapper.init() ()
#7	0x0000000101adabd8 in MDSWrapper.__allocating_init() ()
#8	0x0000000101adaa70 in MdsService.init() at /Users/ksmets/.pub-cache/hosted/pub.dev/mdsflutter-2.3.1/ios/Classes/MdsService.swift:15
#9	0x0000000101adabf8 in @objc MdsService.init() ()
#10	0x0000000101ada940 in MdsService.__allocating_init() ()
#11	0x0000000101ae1fd0 in SwiftMdsflutterPlugin.init() at /Users/ksmets/.pub-cache/hosted/pub.dev/mdsflutter-2.3.1/ios/Classes/SwiftMdsflutterPlugin.swift:7
#12	0x0000000101ae2214 in @objc SwiftMdsflutterPlugin.init() ()
#13	0x0000000101ae1f74 in SwiftMdsflutterPlugin.__allocating_init() ()
#14	0x0000000101ae2338 in static SwiftMdsflutterPlugin.register(with:) at /Users/ksmets/.pub-cache/hosted/pub.dev/mdsflutter-2.3.1/ios/Classes/SwiftMdsflutterPlugin.swift:20
#15	0x0000000101ae256c in @objc static SwiftMdsflutterPlugin.register(with:) ()
#16	0x0000000101ad0dec in +[MdsflutterPlugin registerWithRegistrar:] at /Users/ksmets/.pub-cache/hosted/pub.dev/mdsflutter-2.3.1/ios/Classes/MdsflutterPlugin.m:13
#17	0x0000000101554070 in +[GeneratedPluginRegistrant registerWithRegistry:] at /Users/ksmets/Repositories/github.com/ksmets/app/ios/Runner/GeneratedPluginRegistrant.m:30
#18	0x0000000101554198 in AppDelegate.application(_:didFinishLaunchingWithOptions:) at /Users/ksmets/Repositories/github.com/ksmets/app/ios/Runner/AppDelegate.swift:10
#19	0x000000010155449c in @objc AppDelegate.application(_:didFinishLaunchingWithOptions:) ()
#20	0x000000018309a574 in -[UIApplication _handleDelegateCallbacksWithOptions:isSuspended:restoreState:] ()
#21	0x000000018326ed98 in -[UIApplication _callInitializationDelegatesWithActions:forCanvas:payload:fromOriginatingProcess:] ()
#22	0x00000001832584bc in -[UIApplication _runWithMainScene:transitionContext:completion:] ()
#23	0x00000001830c6284 in -[_UISceneLifecycleMultiplexer completeApplicationLaunchWithFBSScene:transitionContext:] ()
#24	0x0000000182f2cfa8 in _UIScenePerformActionsWithLifecycleActionMask ()
#25	0x000000018304f9dc in __101-[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:]_block_invoke ()
#26	0x0000000183165008 in -[_UISceneLifecycleMultiplexer _performBlock:withApplicationOfDeactivationReasons:fromReasons:] ()
#27	0x000000018338d434 in -[_UISceneLifecycleMultiplexer _evalTransitionToSettings:fromSettings:forceExit:withTransitionStore:] ()
#28	0x000000018331d174 in -[_UISceneLifecycleMultiplexer uiScene:transitionedFromState:withTransitionContext:] ()
#29	0x0000000182f2dcf4 in __186-[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:]_block_invoke ()
#30	0x0000000182fe98e4 in +[BSAnimationSettings(UIKit) tryAnimatingWithSettings:actions:completion:] ()
#31	0x0000000182f2fa84 in _UISceneSettingsDiffActionPerformChangesWithTransitionContext ()
#32	0x0000000183014134 in -[_UIWindowSceneFBSSceneTransitionContextDrivenLifecycleSettingsDiffAction _performActionsForUIScene:withUpdatedFBSScene:settingsDiff:fromSettings:transitionContext:lifecycleActionType:] ()
#33	0x0000000183469f38 in __64-[UIScene scene:didUpdateWithDiff:transitionContext:completion:]_block_invoke.578 ()
#34	0x0000000182f5d72c in -[UIScene _emitSceneSettingsUpdateResponseForCompletion:afterSceneUpdateWork:] ()
#35	0x0000000182f9f4cc in -[UIScene scene:didUpdateWithDiff:transitionContext:completion:] ()
#36	0x00000001830cacec in -[UIApplication workspace:didCreateScene:withTransitionContext:completion:] ()
#37	0x0000000183012550 in -[UIApplicationSceneClientAgent scene:didInitializeWithEvent:completion:] ()
#38	0x0000000191c7ac50 in -[FBSScene _callOutQueue_agent_didCreateWithTransitionContext:completion:] ()
#39	0x0000000191c9cf98 in __94-[FBSWorkspaceScenesClient createWithSceneID:groupID:parameters:transitionContext:completion:]_block_invoke.180 ()
#40	0x0000000191c5dbdc in -[FBSWorkspace _calloutQueue_executeCalloutFromSource:withBlock:] ()
#41	0x0000000191c5efd4 in __94-[FBSWorkspaceScenesClient createWithSceneID:groupID:parameters:transitionContext:completion:]_block_invoke ()
#42	0x000000010065dfc8 in _dispatch_client_callout ()
#43	0x00000001006614cc in _dispatch_block_invoke_direct ()
#44	0x0000000191c5f2ac in __FBSSERIALQUEUE_IS_CALLING_OUT_TO_A_BLOCK__ ()
#45	0x0000000191c5e7c0 in -[FBSSerialQueue _targetQueue_performNextIfPossible] ()
#46	0x0000000191c62960 in -[FBSSerialQueue _performNextFromRunLoopSource] ()
#47	0x0000000180b09448 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ ()
#48	0x0000000180b19578 in __CFRunLoopDoSource0 ()
#49	0x0000000180a5b734 in __CFRunLoopDoSources0 ()
#50	0x0000000180a60e08 in __CFRunLoopRun ()
#51	0x0000000180a74174 in CFRunLoopRunSpecific ()
#52	0x00000001a13b3988 in GSEventRunModal ()
#53	0x0000000183276a88 in -[UIApplication _run] ()
#54	0x000000018300ff78 in UIApplicationMain ()
#55	0x0000000197402ee4 in UIApplicationMain ()
#56	0x0000000101554668 in static UIApplicationDelegate.main() ()
#57	0x00000001015545d8 in static AppDelegate.$main() ()
#58	0x00000001015546e4 in main ()
#59	0x00000001005304d0 in start ()

ksmets avatar Dec 03 '25 17:12 ksmets

For what it's worth, I think this due to the fact that both mdslib and sentry define a logDebug function and the wrong one is picked at this moment. Ensuring that one of the frameworks is linked dynamically works around this problem... The better alternative would be to namespace the logDebug functions, but that requires patching the pod sources.

ksmets avatar Dec 03 '25 18:12 ksmets

Thanks for the details!

buenaflor avatar Dec 05 '25 12:12 buenaflor

We reverted the FFI usage in 9.9.0, this should be resolved now without the change of STRIP_STYLE

buenaflor avatar Dec 16 '25 11:12 buenaflor