Some object files have incompatible Objective-C category definitions. Some category metadata may be lost. All files containing Objective-C categories should be built using the same compiler

ios

#1

Since Xcode 8 in a project that links TwitterKit ld produces warning “Some object files have incompatible Objective-C category definitions. Some category metadata may be lost. All files containing Objective-C categories should be built using the same compiler.” Using a custom built version of ld which logs the categories causing the warning produces:

category in file ./Pods/TwitterCore/TwitterCore.framework/TwitterCore(TWTRGCOAuth.o) has no storage for class properties
category in file ./Pods/TwitterCore/TwitterCore.framework/TwitterCore(NSObject+JLJSONMapping.o) has no storage for class properties
category in file ./Pods/TwitterCore/TwitterCore.framework/TwitterCore(NSMutableArray+JLJSONMapping.o) has no storage for class properties
category in file ./Pods/TwitterCore/TwitterCore.framework/TwitterCore(NSError+JLJSONMapping.o) has no storage for class properties


#2

This warning is killing me with my own project. Can you give me any clues as to how you found or created a custom build version of Ld which logs the categories causing the warning?


#3

Is this still an issue for you with Twitter Kit 3.0?


#4

You cannot build ld without access to Apple internal frameworks. Contact DTS for help.


#5

Twitter Kit 3.0.0 has been built with Xcode 8.3.2 and should allow you to link with all object files containing categories.


#6

My comment was specifically for the special version of ld which actually logs the files producing the warning.