tbdize.sh - Gimme back those "Private" TBD files!
What is this?
Apple is trying to discourage devs from using the Private Frameworks in *OS. First they replaced them in the SDK with .dylib stubs (file type 9, giving jtool
some work), then .TBD files, then they just removed them altogether. End result: Compilation using private frameworks fails.
Sorry, guys. Some of us believe that the true power of *OS gets unleashed by using those very same frameworks directly. Don't worry, this won't get to the App store (you can jtool -L ... | grep Private
to find "felons"), but tweak developers and researchers will surely find this handy.
The script will use jtool
to locate your framework of choice in the shared cache (sold separately, but provided on your device at jtool -l
the cache, jtool -S
the dylib in it, and generate the file. It will also attempt to shove it in the mile long path under the iPhone.sdk - failing to

Where to get it:
Available as source here: http://newosxbook.com/src.jl?tree=listings&file=tbdize.sh
Notes:
- Requires jtool in your path somewhere
- Assumes ARM64
- Assumes iPhoneOS.sdk (can be adapated easily for TvOS and/or WatchOS)
- If this breaks your compilation, try the latest jtool (presently, Sydney, May 20th or later)
- If this STILL breaks your compilation, use The NewOSXBook Forum to tell me about it, so I can fix it (though it's very likely a simple fix for you to do by yourself, let me know and I'll update the downloadable version).
- NOT MEANT TO BE SECURE. Yes, there are command injections. But you're already on the command line, so what? If you find a functional bug (or want a feature), let me know.
Comments/Feedback
- Via website forum - The NewOSXBook Forum.