objc-diff icon indicating copy to clipboard operation
objc-diff copied to clipboard

can not work

Open XingZhiKe opened this issue 6 years ago • 1 comments

hi, I want do something to check if the framework api has change. Luchly, I find this repo and I try to use this tool. But, I find some issues. And I don't know how to use it.

one example is "/Users/XXX/Library/Developer/Xcode/DerivedData/OCDiff-hikvzhfsgbawgecwoclndvotqloi/Build/Products/Debug/objc-diff --sdk iphonesimulator --new /Users/XXX/TTTManager/1.0.7/TTT.framework --html apidiff" And I find some error,like this:

  1. XXXXXXXX.h:40:4: error: expected a type; the type is CGFloat,which in system framework 2.XXXXXXXX.h:20:1: error: unknown type name 'UIKIT_EXTERN' UIKIT_EXTERN is a macro which in system framework

Can you write same example which use --args to specific header search path. I use "--newargs -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks/CoreGraphics.framework/Headers" to find CGFloat.

XingZhiKe avatar Apr 23 '19 01:04 XingZhiKe

Do your framework headers #import all of their dependencies, or do they depend on the use of a prefix header? If the headers make use of declarations from CoreGraphics or UIKit but do not import headers for those frameworks you may see errors like this.

You can update the framework headers to import their dependencies so they can compile on their own, or you can use a prefix header with objc-diff by passing --args -include /path/to/PrefixHeader.pch.

mattstevens avatar Apr 24 '19 07:04 mattstevens