问题
I need to install ParseKit to compile with cocoa under Mac Os X, I use xcode 4. I have searched online but there is only a guide for installing parse kit for iPhone. Where do I find the download for Mac Os X and/or a guide?
回答1:
Developer of ParseKit here.
OK, after working through a tricky issue in Xcode 4, I have figured out my preferred way to do this: Create a new Workspace ("MySuite") which contains two sub-Projects
- Your Mac Cocoa Application Project ("MyApp")
- The ParseKit Framework Project ("ParseKit")
You can choose different names than "MyApp" and "MySuite" of course.
There's a few different ways to make this happen. Here's one way:
First, make sure you update to the very latest version of the ParseKit from the Google Code trunk. I have recently modernized the Xcode project for Xcode 4.3.1.
svn checkout http://parsekit.googlecode.com/svn/trunk/ parsekit-trunk
Make sure you do not have the ParseKit Xcode Project window open. This is an issue in Xcode up to version 4.3.1 (and maybe later, not sure).
- Create a Mac "Cocoa Application" Project named "MyApp".
File > New > Project…
. (You may have already created your app. That's fine. Then skip this step.) - Drag the
ParseKit.xcodeproj
file from the Finder to the very top of the Project Navigator in the "MyApp" Xcode Project window. NOTE: make sure you drop the file at the very top of the Project Navigator tree. Otherwise it will not work. - Xcode will present a dialog: "Do you want to save this project in a new workspace?" Click "Save" and name the Workspace something like "MySuite".
- Select the "MyApp" Project in the Project Navigtor.
- Select the "MyApp" Target in the "Targets" list.
- Select the "Build Phases" tab.
- Click the disclosure triangle next to "Target Dependencies" to open the list.
- Click the "+" button at the bottom of the list.
- Select "ParseKit.framework" from the resulting dialog and click "Add" to add ParseKit as a dependency of your target. This ensures ParseKit is built before your target.
- Click the disclosure triangle next to "Link Binary With Libraries" to open the list.
- Click the "+" button at the bottom of the list.
- Select "ParseKit.framework" from the resulting dialog and click "Add".
- Click the disclosure triangle next to "Link Binary With Libraries" to open the list.
- Click the "+" button at the bottom of the list.
- Select "ParseKit.framework" from the resulting dialog and click "Add".
- See "ParseKit.framework" in the "Link Binary With Libraries" list.
- Click the "Add Build Phase" Button, choose "Copy Files" in the popup.
- In the new "Copy Files" build phase, select "Frameworks" in the "Destination" popup.
- Drag "ParseKit.framework" from the Project Navigator to the list in the new "Copy Files" build phase.
In
MyAppDelegate.m
, import the ParseKit header:#import <ParseKit/ParseKit.h>
In
-[MyAppDelegate applicationDidFinishLaunching:]
do:NSString *g = @"@start = Word+;"; PKParser *p = [[PKParserFactory factory] parserFromGrammar:g assembler:self error:nil]; NSError *err = nil; id result = [p parse:@"foo bar baz" error:&err]; NSLog(@"%@", result);
- Build and run.
For more info on this topic, see:
- Apple's docs
- Chapter 16 of Mastering Xcode 4 by Joshua Nozzi
回答2:
- Open your project in Xcode 4
- Make sure Project Navigator is shown
- Ctrl click on your project file (the blue page icon)
- Select Add Files to "YourProjectName"
- Select ParseKit.xcodeproj
- In Project Navigator select your project file
- Go to Build Phases
- Disclose Link Binary With Libraries and either add ParseKit.framework by clicking + or drag'n'drop it from Project Navigator's Products directory of ParseKit.framework
- Add Copy File phase by clicking bottom right Add Build Phase button.
- Set destination to frameworks
- Repeat 8, but for new build phase
You may also need to add Target Dependency: repeat step 8, but for this phase. But looks like Xcode can sort out them itself.
I also recommend you to create a Workspace, it makes managing of subproject much easier and looks like this fixes most part of potential problems, because if Xcode fails to resolve dependencies, you can always add script to copy files manually, since products of projects will share the same build directory.
回答3:
I managed to do this using cocoapods. Try that if your stuck still
回答4:
Developer of ParseKit here.
I'm sorry I don't have a good answer for you. I have some outdated docs on how to use ParseKit in your iOS application using Xcode 3.
However, I've just tried to go through the process of embedding ParseKit.framework within a Mac OS X app using Xcode 4, and I honestly could not figure out how to do it in Xcode 4. I am baffled.
What I can say, is that embedding ParseKit.framework in your Mac app should not be very different from embedding any other framework in your Mac app. There's nothing particularly special or unusual about ParseKit in this regard. The problem is I just can't figure out how to do that at all in Xcode 4.
Here's Apple's documentation on how to do this:
Embedding a Private Framework in Your Application Bundle > Using Separate Xcode Projects For Each Target
Unfortunately, Apple's docs are also out of date, and also describe the process in Xcode 3.
I have asked a question here on Stack Overflow to try to solve this problem.
来源:https://stackoverflow.com/questions/9649537/how-to-embed-parsekit-as-a-private-framework-in-a-mac-app-bundle