0

Someone asked this question in the past, but the answer is no longer valid. There is nothing on my system at /System/Library/dyld/.

Here is a command that inspects the Mail.app binary and lists the libraries it uses.

% otool -L /System/Applications/Mail.app/Contents/MacOS/Mail
...
/usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
...
/System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 2299.40.116)
...

But neither of those libraries are at the given path. Where are they?

% ls /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
ls: /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit: No such file or directory

% ls /usr/lib/libobjc.A.dylib                                     
ls: /usr/lib/libobjc.A.dylib: No such file or directory
Rob N
  • 15,024
  • 17
  • 92
  • 165
  • Updated [the other answer](https://stackoverflow.com/questions/64512628/trying-to-find-the-macos-framework-binaries), so voting to close this as a dupe. – Siguza Mar 17 '23 at 15:48
  • Okay. I wanted to run `otool` on the system dylibs to help understand some linking issues. I guess that's not possible anymore. – Rob N Mar 17 '23 at 18:41
  • 1
    You can extract them from the cache. They won't be functional due to codesigning, import inlining, and other optimisations that were applied, but static analysis should work fine. There's a file `/usr/lib/dsc_extractor.bundle` that exports a single symbol `dyld_shared_cache_extract_dylibs_progress`. Load and look up with `dlopen`/`dlsym`, cast to `int (*extractor)(const char *shared_cache, const char * outdir, void (^progress_callback)(unsigned current, unsigned total))`, then call with the shared cache file that has no suffix. It'll infer the `.1` files etc. by itself. – Siguza Mar 17 '23 at 19:26

0 Answers0