将Google Drive API连接到Swift

时间:2015-07-26 20:16:57

标签: ios swift cocoapods

来自previously removed post

  

我正在努力让Google Drive API与Swift合作,并希望有人提出建议。这是我到目前为止的位置:我安装了Google Drive API,并在Objective-C ...

中工作

我正在尝试在Swift中重现this example from Google,但import GTLDrive在Xcode中返回错误:

  

没有这样的模块&#GT; GTLDrive。

我无法使用Swift类中的GTLServiceDrive。 我应该使用CocoaPod + 桥接头的哪种组合?

3 个答案:

答案 0 :(得分:6)

你需要3件事:

(1)格式良好的Podfile

platform :ios, '8.0'

target 'GoogleDrive' do
pod 'Google-API-Client/Drive', '~> 1.0'
end

(2)通过bridging headers

公开Goog​​le API
#import "GTMOAuth2ViewControllerTouch.h"
#import "GTLDrive.h"

(3)Swift客户端类中不需要参考GTLDrive

override func viewDidLoad() {
    super.viewDidLoad()
    // ...

    let service:GTLServiceDrive = GTLServiceDrive()
    service.authorizer = GTMOAuth2ViewControllerTouch.authForGoogleFromKeychainForName("Drive API",
        clientID: "YOUR_CLIENT_ID_HERE",
        clientSecret: "YOUR_CLIENT_SECRET_HERE")

    // ...
}

答案 1 :(得分:2)

我刚刚在XCode 7.3中遇到了这个问题,并在桥接标题中修改了以下内容:

#import <GoogleAPIClient/GTLDrive.h>

此外,如果您需要身份验证部分:

#import <GTMOAuth2/GTMOAuth2ViewControllerTouch.h>

答案 2 :(得分:1)

我完全抛弃了Swift中的Google API Objective C库并创建了一个临时解决方案:https://github.com/metaprgmr/GoogleApiProxyForSwift。顺便说一下,我使用谷歌硬盘作为guinnea猪,你可以在YouTube演示文稿的最后阶段找到实验。看看吧。