appsquickly / XcodeEditor

An API for manipulating Xcode project files.
Apache License 2.0
880 stars 134 forks source link

addframework failed in xcode7 #56

Open wlevene opened 9 years ago

wlevene commented 9 years ago

I updated xcode to xcode7, happened this

static const NSString* SDK_PATH = @"/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk";

XCFrameworkDefinition* frameworkDefinition = [[XCFrameworkDefinition alloc] initWithFilePath:[XCFrameworkPath libzDylibPath] copyToDestination:NO];

[frameworksGroup addFramework:frameworkDefinition toTargets:[project targets]];

b33cc970-f502-4c8b-b1bb-b0c65d3d465a

here is ok~ but when i build the project, failed for this

fffc1340-e6e8-4e00-89a1-fdc3995c95b2

cezheng commented 9 years ago

linking against *.tbd libraries seems to be an unfinished feature in xcode 7, try adding -lz in the OTHER_LD_FLAGS which will do what you want

wlevene commented 9 years ago

i wish the author will finish link *.tbd libraries feature in xcode 7 soon, ;)

cezheng commented 9 years ago

I guess the tbd issue is not XcodeEditor's problem but a problem of Xcode itself, so I guess this issue should be closed

wlevene commented 9 years ago

the reason is the pbxproj file format is changed, may be need to support it in XcodeEditor

cezheng commented 9 years ago

I don't think so. Even if you manually add the libz.tbd to your project in Xcode, it fails

wlevene commented 9 years ago

i manually add the libz.tbd to my project in Xcode, it is ok
195d1538-56f5-4ff5-8148-de7813b7cbf9

cezheng commented 9 years ago

Oh, maybe *.tbd cannot be used in a static library project. I have a static library project and if I add a tbd file the build just fails

jasperblues commented 8 years ago

@cezheng @GangWang Agree we can close this?

akame commented 8 years ago

I think this problem because XcodeEditor doesn't support .tbd file, I add Dylib = 24 in XcodeSourceFileType.h and @"sourcecode.text-based-dylib-definition" : @(Dylib) in XcodeSourceFileType.m(NSDictionaryWithXCFileReferenceTypes).

At last, I copy a new function from function :- (void)addFramework:(XCFrameworkDefinition *)frameworkDefinition; in XCGourp.m . I change: fileReference = [self makeFileReferenceWithPath:path name:name type:Framework] to fileReference = [self makeFileReferenceWithPath:path name:name type:Dylib]

I'm a new programmer ,and if I was wrong, forgive me .

wlevene commented 8 years ago

@akame hahaha~ thank you! you are right, i follow u step, it works! @jasperblues

forwardto9 commented 7 years ago

@akame nice! but you also add buidPharse item