Adding Google Objective-C API 'GTL' to iPhone project

后端 未结 5 685
隐瞒了意图╮
隐瞒了意图╮ 2020-12-24 03:50

How to I add the Google Drive API to my iPhone project to I can use it?

So far, I have dragged the GTL project into my current app project (so that it is nested unde

5条回答
  •  暗喜
    暗喜 (楼主)
    2020-12-24 04:31

    I struggled with this exact issue for most of the day today, and I found it extremely frustrating. I have finally figured it all out so here is a straightforward step by step guide on how to add the Google API to an iOS7 project using XCode5, using ARC, without having to create Workspaces or any of that.

    The answer provided by RawMean works well, but it gave me issues with ARC. I also didn't like the fact that you had to add project, create a workspace and then delete the project. So my solution will deal with both these issues.

    1. Check out the code. To do this, you can just run svn checkout http://google-api-objectivec-client.googlecode.com/svn/trunk/ google-api-objectivec-client-read-only from your terminal. I will refer to this code as "Google's code".
    2. Go to your project's Build Phases. Expand "Link Binary With Libraries" and add Security.framework and SystemConfiguration.framework. These two are required by Google's code.
    3. Go to your project's Build Settings. Using the search box there, look for Other Linker Flags (make sure "All" is selected to the left of the search box). Add -ObjC -all_load.
    4. Now search for User headers search path and add the full path to Goggle's /Source directory. Make sure you select recursive.
    5. Using Finder, go to Google's /Source/OAuth2/Touch directory. Drag and drop GTMOAuth2ViewTouch.xib into your project.
    6. Go back to Finder and go to Google's /Source directory. Drag and drop GTLCommon_Sources.m and GTLCommon_Networking.m into your project.
    7. Now, you need to import the files for the services you want to use. In my case, I need to use Google Drive, so I'll add those. In finder, go to Google's /Source/Services/Drive/Generated directory. Drag and drop GTLDrive.h and GTLDrive_Sources.m into your project. If you want to use other services, go to their directory and import the appropriate .h and .m file.
    8. For some reason, Google's code doesn't use ARC, so if you try to build right now, you will get ARC compile errors. So we need to disable ARC for Google's code only. To do this, go back to your project's Build Phases, but this time expand "Compile Sources". Make sure that GTLCommon_Sources.m and GTLCommon_Networking.m are there. Select them, press enter and type in -fno-objc-arc. This will disable ARC for both of them. Make sure you don't add this option for any other file (unless you know what you're doing).
    9. You are done! Now, whenever you want to use Google's API, just import GTMOAuth2ViewControllerTouch.h and your service header. In my case, since I'm using Google Drive, I will also import GTLDrive.h.

    I hope that helps and saves some people from pulling all their hair out.

提交回复
热议问题