dyld_shared_cache

From iPhone Development Wiki
Revision as of 19:42, 8 September 2013 by Britta (talk | contribs) (adding some hopefully-useful keywords and a link)


Since iPhoneOS 3.1, all default (private and public) libraries have been combined into a big cache file in /System/Library/Caches/com.apple.dyld/dyld_shared_cache_armv6 (or _armv7) to improve performance. The original files are no longer useful for non-on-device-developers, so they are eliminated from the system.

If you're looking for binaries or libraries inside of /System/Library/Frameworks or /System/Library/PrivateFrameworks and you can't find them, this is why.

Cache extraction

Developers who do not use the SDK cannot link programs on iOS directly due to the missing dylibs. You first need to extract the appropriate dylibs from the dyld_shared_cache.

Options:

  • You could use dyld_decache by KennyTM~ to extract these dylibs.
  • Alternatively, you could use DySlim by comex to mount the whole cache file on Mac OS X.
  • decache by phoenixdev also works quite well.

References

  • Cache or Check? — an analysis of the dyld_shared_cache system by D. Howett.