问题
From a previously removed post:
I am struggling to get the Google Drive API to work with Swift, and hoping someone has a suggestion. Here is where I am at so far: I have the Google Drive API installed and working in an Objective-C ...
I am trying to reproduce this example from Google in Swift, but import GTLDrive
returns an error in Xcode:
No such module 'GTLDrive.
I am unable to use GTLServiceDrive
from the Swift classes.
Which combination of CocoaPod + bridging header should I use?
回答1:
You need 3 things:
(1) Well formed Podfile
platform :ios, '8.0'
target 'GoogleDrive' do
pod 'Google-API-Client/Drive', '~> 1.0'
end
(2) Expose Google API through the bridging headers
#import "GTMOAuth2ViewControllerTouch.h"
#import "GTLDrive.h"
(3) No reference GTLDrive required in the Swift client class
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")
// ...
}
回答2:
I just ran into that now in XCode 7.3, and fixed it with the following in the bridging header:
#import <GoogleAPIClient/GTLDrive.h>
Also, if you need the authentication portion:
#import <GTMOAuth2/GTMOAuth2ViewControllerTouch.h>
回答3:
I threw away Google API Objective C library from Swift altogether and created an interim solution: https://github.com/metaprgmr/GoogleApiProxyForSwift. Incidentally, I used Google Drive as a guinnea pig, where you can find experiments at close to the end of its YouTube presentation. Check it out.
来源:https://stackoverflow.com/questions/31641498/bridge-google-drive-api-to-swift