0

iOS アプリで Google ドライブを使用しようとしています。認証とブラウジングは正常に行われますが、ファイルをアップロードしようとすると、次のエラーが発生します。

*** Assertion failure in -[GTLService uploadFetcherWithRequest:fetcherService:params:](), /google-api-objectivec-client-read-only/Source/Objects/GTLService.m:565

関連するコードは次のとおりです。

GTLUploadParameters *uploadParameters = [GTLUploadParameters uploadParametersWithData:fileContent MIMEType:@"application/pdf"];

GTLDriveFile *file = [[GTLDriveFile alloc] init];
file.title = @"test.pdf";

GTLQueryDrive *query = [GTLQueryDrive queryForFilesInsertWithObject:file uploadParameters:uploadParameters];

[self.driveService executeQuery:query completionHandler:^(GTLServiceTicket *ticket,
                                                        GTLDriveFile *updatedFile,
                                                        NSError *error) {
  NSLog(@"Done");
}];

誰かがこの問題に遭遇しましたか? 明らかに、セットアップのどこかで何かが欠けていると思いますが、何がわかりません。

4

2 に答える 2

3

アプリケーション プロジェクトの [ビルド設定] の [その他のリンカー フラグ] 設定に -ObjC -all_load を追加します。

https://developers.google.com/drive/quickstart-iosで上記の手順を確認してください

于 2013-03-19T14:32:06.487 に答える
1

ソースを参照したところ、対応する行は次のとおりです。

GTL_ASSERT(uploadClass != nil, @"GTMHTTPUploadFetcher needed");

stackoverflow でそれを検索すると、次の回答が得られました

これは、クラス GTMHTTPUploadFetcher がアプリケーションにリンクされていないことを示しています。デバッグまたはリリース ビルド ターゲットでクラス ファイルがリンクされていないか、プリプロセッサ定義 GDATA_INCLUDE_YOUTUBE_SERVICE が設定されていないことが原因で、クラスが欠落している可能性があります。 /p/gdata-objectivec-client/wiki/BuildingTheLibrary

于 2012-12-15T20:13:24.067 に答える