I discovered that you can deprecate external symbols in your application code. So you can warn on usage of certain C APIs from CoreFoundation et al.
For example: If you are trying to enforce always using CocoaLumberjack for logging over the classic
You can copy the declaration of
NSLog into your prefix header and add a deprecated notice.
FOUNDATION_EXPORT void NSLog(NSString *format, ...) NS_FORMAT_FUNCTION(1, 2) __deprecated_msg( "MyApp: Use DDLog");
This might not be a good idea, as framework headers can and do change between releases.
I would at least put them in a seperate file,
ProjectDeprecations.h, and use a macro to standardise and define the deprecated attribute.
I haven’t found a way to do this on Objective-C classes, maybe that’s for the best.
Update from the Twitters