2012-07-06 7 views
11

GoogleドライブAPIをiPhoneプロジェクトに追加して使用するにはどうすればよいですか?iPhoneプロジェクトにGoogle Objective-C API 'GTL'を追加する

これまでのところ、GTLプロジェクトを私の現在のアプリケーションプロジェクトにドラッグしています(私のアプリケーションプロジェクトの下にネストされています)。次に、私のアプリケーションターゲットのビルドフェーズで、GTL.frameworkを追加し、GTL.frameworkを私の 'Link with binary with Libraries'に追加しました(添付の写真を参照)。これにより、次のエラーがスローされます。

clang: error: no such file or directory: '/Users/xxx/Library/Developer/Xcode/DerivedData/Golf-hfbczyaemhyzgvbrtgdxqnlzeuaa/Build/Products/Debug-iphonesimulator/GTL/GTL' 

これを修正するにはどうすればよいですか?

enter image description here

+1

3.5年後の手順はまだ混乱していてイライラしています.Googleは簡単で簡単にできません。 :/ –

答えて

14

私もこのエラーメッセージに苦労。これは私がそれを解決した方法です:

あなたがGTLSource/Common /で使用しているサービスのフォルダを追加していることを確認してください(たとえば、Googleドライブのドライブフォルダを追加してください)。

GTL.xcodeproj(すでにあなたのワークスペースに追加済み)では、GTLSourceフォルダを見つけてメインプロジェクト(あなたの場合はゴルフ)にドラッグします。完了!

これで、作業領域に追加したGTL.xcodeprojへの参照を削除できます。

この方法では、ライブラリを追加する必要はありません(ライブラリを追加した場合はリンクされたライブラリのリストから削除する必要があります)。

Google APIのドキュメントは、Appleのドキュメント(それは良くない)のようなものではありません。

私はiOS用でMacOSX用ではないアプリも作っていますが、これはOSXでもうまくいくはずです。

enter image description here

+0

もし私が1回以上upvoteすることができます。ありがとう –

+6

私はこの問題をもう一度遭遇し、これを解決したことを忘れていました。このページでは、実際にこのソリューションを投稿したことを認識しました:) – RawMean

+1

SwiftソリューションはRobの答えを使用し、 /stackoverflow.com/questions/24082606/google-objective-c-api-gtl-with-swift/24114960#24114960 –

1

だけでなく、上記をやってますが、下に行く「[プロジェクト名] Targets->フェイズ>ソースをコンパイルの構築」および+ボタンをクリックしてください。何らかの理由ですべての.mファイルを追加すると、ほとんどのファイルは自動的には作成されません。

ドライブフォルダから「GTLDrive_Souces.m」を削除する必要がありましたが、なぜその部分を行う必要があるのか​​分かりません。

+0

"上記を行うだけではないのですか?"私はあなたが意味することを理解していません。あなたの答えの上に多くのものがあります。 – Kaydell

25

私はこの日のほとんどの日にこの厳しい問題に苦しんでいました。私は非常にイライラしていました。私は最終的にそれをすべて考え出したので、ここでは、XCode5を使ってiOS7プロジェクトにGoogle APIを追加する方法のステップガイドで、ARCを使用してワークスペースやそのいずれかを作成する必要はありません。

RawMeanから提供された回答はうまく機能しますが、ARCに問題が生じました。また、プロジェクトを追加し、ワークスペースを作成してからプロジェクトを削除しなければならないということも気に入らなかった。だから、私の解決策はこれらの両方の問題に対処します。

  1. コードを確認してください。これを行うには、端末からsvn checkout http://google-api-objectivec-client.googlecode.com/svn/trunk/ google-api-objectivec-client-read-onlyを実行するだけです。このコードを「Googleのコード」と呼びます。
  2. プロジェクトのビルドフェーズに移動します。 "リンクバイナリライブラリ"を展開し、Security.frameworkSystemConfiguration.frameworkを追加します。この2つはGoogleのコードで必要とされます。
  3. プロジェクトのビルド設定に移動します。検索ボックスを使用して、Other Linker Flagsを探します(検索ボックスの左側に[すべて]が選択されていることを確認してください)。 -ObjC -all_loadを追加します。
  4. User headers search pathを検索し、ゴーグルの/Sourceディレクトリへのフルパスを追加します。 recursiveを必ず選択してください。
  5. Finderを使用して、Googleの/Source/OAuth2/Touchディレクトリに移動します。あなたのプロジェクトにGTMOAuth2ViewTouch.xibをドラッグアンドドロップします。
  6. Finderに戻り、Googleの/Sourceディレクトリに移動します。プロジェクトにGTLCommon_Sources.mGTLCommon_Networking.mをドラッグ&ドロップします。
  7. これで、使用するサービスのファイルをインポートする必要があります。私の場合、Googleドライブを使用する必要があるので、それらを追加します。ファインダーで、Googleの/Source/Services/Drive/Generatedディレクトリに移動します。プロジェクトにGTLDrive.hGTLDrive_Sources.mをドラッグアンドドロップします。他のサービスを使用する場合は、そのディレクトリに移動し、適切な.hと.mファイルをインポートします。
  8. 何らかの理由で、GoogleのコードでARCが使用されないため、今すぐビルドしようとするとARCコンパイルエラーが発生します。したがって、Googleのコードがの場合はARC を無効にする必要があります。これを行うには、プロジェクトのビルド段階に戻りますが、今回は[ソースのコンパイル]を展開します。 GTLCommon_Sources.mGTLCommon_Networking.mがあることを確認してください。それらを選択し、Enterキーを押して-fno-objc-arcと入力します。これにより、両方のARCが無効になります。あなたが何をしているのか分からない限り、他のファイルにこのオプションを追加しないように注意してください。
  9. あなたは完了です!今度は、GoogleのAPIを使用したい場合は、GTMOAuth2ViewControllerTouch.hとサービスヘッダをインポートしてください。私の場合はGoogleドライブを使用しているので、GTLDrive.hもインポートします。

一部の人が髪を引き抜くのを助けることを願っています。

+1

私のために働いた。ありがとう! – bvs

+2

これはSwiftで動作します。詳細は私の回答をご覧くださいhttp://stackoverflow.com/questions/24082606/google-objective-c-api-gtl-with-swift/24114960#24114960 –

+2

あなたは絶対に救い主です!どうもありがとうございました。 Googleの公式文書に続く2時間の闘いの後、これを手に入れました。もう一度ありがとう。 –

1

Better to use Pod

  1. How to install CocoaPods and setup with your Xcode project for reference : [ http://blogs.triffort.com/?p=309][1]
  2. Open the pod file and add

    pod 'Google-API-Client/Drive', '~> 1.0' save pod file and call pod install in terminal. Note:pod file you must give link_with 'Your_project_name', 'Your_project_nameTests' after this line only add your library

+0

'GTMOAuth2ViewControllerTouch.h'と' GTLDrive.h'ファイルをcocoapodsであなたのプロジェクトにインポートしていますか?インポート文を使用することができず、インポートするモジュールが見つかりません。 – KVISH

+0

@KVISH:現在何をしましたか? .workspaceまたは.xcodeprojectを開いたのですか? –

+0

use_frameworksを追加しないでください! Podfileで –

1

これは実際にGoogle APIをインストールする問題を解決するものではありませんが、このレポではGoogleのAPIを使用せずにiOSアプリケーションからGoogleフォームにアクセスしました。 https://github.com/goktugyil/QorumLogs/blob/master/Log%20To%20GoogleDocs.md

相続人はそれを行うためのコード:https://github.com/goktugyil/QorumLogs

だから、あなたはいくつかのプロジェクトで

を設置APIの一部をスキップすることがあり

ここではそれを設定する方法についてのチュートリアルです

private static var googleFormLink: String! 
private static var googleFormAppVersionField: String! 
private static var googleFormUserInfoField: String! 
private static var googleFormMethodInfoField: String! 
private static var googleFormErrorTextField: String! 

/// Setup Google Form links 
static func setupOnlineLogs(#formLink: String, versionField: String, userInfoField: String, methodInfoField: String, textField: String) { 
    googleFormLink = formLink 
    googleFormAppVersionField = versionField 
    googleFormUserInfoField = userInfoField 
    googleFormMethodInfoField = methodInfoField 
    googleFormErrorTextField = textField 
} 

private static func sendError(#text: String) { 
    var url = NSURL(string: googleFormLink) 
    var postData = googleFormAppVersionField + "=" + text 
    postData += "&" + googleFormUserInfoField + "=" + "anothertext"     
    postData += "&" + googleFormMethodInfoField + "=" + "anothertext" 
    postData += "&" + googleFormErrorTextField + "=" + "anothertext" 

    var request = NSMutableURLRequest(URL: url!) 
    request.HTTPMethod = "POST" 
    request.setValue("application/x-www-form-urlencoded; charset=utf-8", forHTTPHeaderField: "Content-Type") 
    request.HTTPBody = postData.dataUsingEncoding(NSUTF8StringEncoding) 
    var connection = NSURLConnection(request: request, delegate: nil, startImmediately: true) 
} 
関連する問題