facebook/chisel — pull request #45 by kolinkrewinkel (2014-07-09 07:42:34+00:00)
Title: OS X Support (for major commands) 

Some of the commands (afaik) don't have equivalents (such as getting the "key" window. You can't do that with Mac. Ever. And a lot of apps don't have a mainWindow assigned, so grabbing the first one in the -windows is a reasonable default.) This is true also in a more literal sense, as CARenderServer isn't really queryable (that I could find) like SpringBoard's is.

For the most part, it's just querying the architecture and replacing with NS* equivalents. Determining if the system is a Mac or not is done by attempting to grab the NSApplication* class. It doesn't exist on iOS.

The reason that the _\__dynamic\___ placeholders are used is that you can't query the target's architecture at lldb init, as there is no target. Thus, you can dynamic them and then assign them the real defaults at runtime.

The key changes hit are:
* view walking
* view flickering
* printing view hierarchy (apparently including some additional info, like drawRect speeds and some AutoLayout stuff)
* bordering
* read me update