Paul Wise wrote: > Hmmm, what about something that looks at the headers?
This is possible in theory although it looks complex, fragile and insufficient to me. It would help library maintainers to detect API breaks and subsequently ABI breaks (at least one source for them), but I can't see how it would achieve what symbols files do for C/C++. An object type can be unknown at compile time so it would be impossible to determine which method is going to be actually performed at runtime; two unrelated classes may have methods with the same name. Application code can also obtain a specific method implementation with libobjc functions and execute it directly as a C function -- this is transparent and unrelated to the public API. An ABI compliance checker for Objective-C would be a nice thing but it would be quite a project. Such a tool should be intelligent enough to analyze the whole code and not just the headers.