App Crash with mxSignpost function not found

Hi team:

I recently update to Xcode 26.4, and I encountered crash when running to < iOS 26.4 both for physical device and Simulator with this log:

dyld[1257]: Symbol not found: _$s9MetricKit10mxSignpost_3dso3log4name10signpostID__ySo03os_H7_type_ta_SVSo03OS_j1_F0Cs12StaticStringV0J0010OSSignpostI0VALSays7CVarArg_pGtF
  Referenced from: <164CCEB0-E1F8-3CE2-A934-2096C19C0A9A> /private/var/containers/Bundle/Application/EA709A68-F76F-4D97-85C6-B71D61D68389/xxx.app/xxx.debug.dylib
  Expected in:     <9E5EC9BB-5828-329C-A2BC-038B67060298> /System/Library/Frameworks/MetricKit.framework/MetricKit

Symbol not found: _$s9MetricKit10mxSignpost_3dso3log4name10signpostID__ySo03os_H7_type_ta_SVSo03OS_j1_F0Cs12StaticStringV0J0010OSSignpostI0VALSays7CVarArg_pGtF
  Referenced from: <164CCEB0-E1F8-3CE2-A934-2096C19C0A9A>x /private/var/containers/Bundle/Application/EA709A68-F76F-4D97-85C6-B71D61D68389/xxx.app/xxx.debug.dylib
  Expected in:     <9E5EC9BB-5828-329C-A2BC-038B67060298> /System/Library/Frameworks/MetricKit.framework/MetricKit
dyld config: DYLD_LIBRARY_PATH=/usr/lib/system/introspection DYLD_INSERT_LIBRARIES=/usr/lib/libLogRedirect.dylib:/usr/lib/libBacktraceRecording.dylib:/usr/lib/libMainThreadChecker.dylib:/usr/lib/libRPAC.dylib:/usr/lib/libViewDebuggerSupport.dylib

but iOS 26.4 works well.

Env: Xcode: 26.4 Simulator/Physical Device: < 26.4 macOS: 26.3

Thanks for giving any help.

Answered by DTS Engineer in 882239022

Consider this:

% swift demangle
_$s9MetricKit10mxSignpost_3dso3log4name10signpostID__ySo03os_H7_type_ta_SVSo03OS_j1_F0Cs12StaticStringV0J0010OSSignpostI0VALSays7CVarArg_pGtF
MetricKit.mxSignpost(_: __C.os_signpost_type_t, dso: Swift.UnsafeRawPointer, log: __C.OS_os_log, name: Swift.StaticString, signpostID: os.OSSignpostID, _: Swift.StaticString, _: [Swift.CVarArg]) -> ()

So, the problematic symbol is mxSignpost(…). According to the documentation, that’s available on iOS 13 and later. However, that’s clearly not the case O-:

I see two possibilities here:

  • The availability annotation is just wrong.
  • The symbol is available on older system, but it moved, and the corresponding .tbd file doesn’t record that move.

I suspect that it’s the latter [1] but, either way, it’s a bug in the MetricKit framework interface and you should file it as such.

Please post your bug number, just for the record.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

[1] I’ve seen stuff like that before.

Consider this:

% swift demangle
_$s9MetricKit10mxSignpost_3dso3log4name10signpostID__ySo03os_H7_type_ta_SVSo03OS_j1_F0Cs12StaticStringV0J0010OSSignpostI0VALSays7CVarArg_pGtF
MetricKit.mxSignpost(_: __C.os_signpost_type_t, dso: Swift.UnsafeRawPointer, log: __C.OS_os_log, name: Swift.StaticString, signpostID: os.OSSignpostID, _: Swift.StaticString, _: [Swift.CVarArg]) -> ()

So, the problematic symbol is mxSignpost(…). According to the documentation, that’s available on iOS 13 and later. However, that’s clearly not the case O-:

I see two possibilities here:

  • The availability annotation is just wrong.
  • The symbol is available on older system, but it moved, and the corresponding .tbd file doesn’t record that move.

I suspect that it’s the latter [1] but, either way, it’s a bug in the MetricKit framework interface and you should file it as such.

Please post your bug number, just for the record.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

[1] I’ve seen stuff like that before.

  Referenced from: <BE7BFAFD-CE49-3373-9146-F342D87BF49F> /private/var/containers/Bundle/Application/FF873B01-8EA2-4C96-9DBE-D2FDE6BD6B42/MyApp.app/MyApp.debug.dylib
  Expected in:     <BD4E2A51-DF45-3674-9B18-9D6527AE18BD> /System/Library/Frameworks/MetricKit.framework/MetricKit
Symbol not found: _$s9MetricKit10mxSignpost_3dso3log4name10signpostID__ySo03os_H7_type_ta_SVSo03OS_j1_F0Cs12StaticStringV0J0010OSSignpostI0VALSays7CVarArg_pGtF
  Referenced from: <BE7BFAFD-CE49-3373-9146-F342D87BF49F> /private/var/containers/Bundle/Application/FF873B01-8EA2-4C96-9DBE-D2FDE6BD6B42/MyApp.app/MyApp.debug.dylib
  Expected in:     <BD4E2A51-DF45-3674-9B18-9D6527AE18BD> /System/Library/Frameworks/MetricKit.framework/MetricKit
dyld config: DYLD_LIBRARY_PATH=/usr/lib/system/introspection DYLD_INSERT_LIBRARIES=/usr/lib/libLogRedirect.dylib:/usr/lib/libBacktraceRecording.dylib:/usr/lib/libMainThreadChecker.dylib:/usr/lib/libRPAC.dylib:/usr/lib/libViewDebuggerSupport.dylib:/System/Library/PrivateFrameworks/GPUToolsCapture.framework/GPUToolsCapture
Symbol not found: _$s9MetricKit10mxSignpost_3dso3log4name10signpostID__ySo03os_H7_type_ta_SVSo03OS_j1_F0Cs12StaticStringV0J0010OSSignpostI0VALSays7CVarArg_pGtF
  Referenced from: <BE7BFAFD-CE49-3373-9146-F342D87BF49F> /private/var/containers/Bundle/Application/FF873B01-8EA2-4C96-9DBE-D2FDE6BD6B42/MyApp.app/MyApp.debug.dylib
  Expected in:     <BD4E2A51-DF45-3674-9B18-9D6527AE18BD> /System/Library/Frameworks/MetricKit.framework/MetricKit
dyld config: DYLD_LIBRARY_PATH=/usr/lib/system/introspection DYLD_INSERT_LIBRARIES=/usr/lib/libLogRedirect.dylib:/usr/lib/libBacktraceRecording.dylib:/usr/lib/libMainThreadChecker.dylib:/usr/lib/libRPAC.dylib:/usr/lib/libViewDebuggerSupport.dylib:/System/Library/PrivateFrameworks/GPUToolsCapture.framework/GPUToolsCapture

Same here

Hi,

App crashes on launch on iOS 26.3.1 after building with Xcode 26.4.

dyld: Symbol not found: MetricKit.mxSignpost

Works fine on iOS 26.4+.

FB: FB22384135

Anyone else seeing this or any workaround?

Thanks.

App Crash with mxSignpost function not found
 
 
Q