1. Trong Bridging-Header.h
import <GoogleSignIn/GoogleSignIn.h>
import <Google/Core.h>
2. Trong AppDelegate.swift
import Google
Trong application:didFinishLaunchingWithOptionslaunchOptions:
cấu hình các GGLContext
đối tượng:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
var configureError: NSError?
GGLContext.sharedInstance().configureWithError(&configureError)
assert(configureError == nil, "Error configuring Google services: \(configureError)")
GIDSignIn.sharedInstance().clientID = "client id"
GIDSignIn.sharedInstance.shouldFetchBasicProfile = true
GIDSignIn.sharedInstance().delegate = self
}
Sau đó, thêm một GIDSignInButton
xem ứng dụng của bạn.
Cuối cùng, trong trình điều khiển chế độ xem, triển khai phương thức ủy quyền signIn:didSignInForUser:
sẽ được gọi khi nút đăng nhập là tapped:
khi ủy quyền ứng dụng. Thông tin đăng nhập
- (void)signIn:(GIDSignIn *)signIn
didSignInForUser:(GIDGoogleUser *)user
withError:(NSError *)error {
// Perform any operations on signed in user here.
// ...
}
3. Chia sẻ giữa các ứng dụng/phần mở rộng
Khi bạn đăng ký trong khuôn khổ của Google sẽ phải sử dụng phương pháp iOS mẹ đẻ để thêm các thông tin mới cho iOS Keychain. Vì vậy, họ sẽ sử dụng phương pháp SecItemAdd(_:_:)
sẽ thêm một hoặc nhiều mục vào một keychain.
Để truy cập cùng một mục keychain trong cả ứng dụng và tiện ích, bạn cần bật "Chia sẻ Keychain" cho cả ứng dụng và tiện ích mở rộng từ phần Xcode's Capabilities trong cài đặt dự án của bạn. Khi bạn làm điều này, Xcode có thể sẽ muốn cập nhật ID ứng dụng và hồ sơ cấp phép của bạn, vì chúng cần phản ánh khả năng mới này. Có thể bạn sẽ phải ủy quyền lại ứng dụng (Bước 2) để nhận thông tin đăng nhập vào đúng nhóm.
Apple Documentation nêu rõ:
Nếu bạn muốn mục keychain mới được chia sẻ giữa nhiều ứng dụng, bao gồm phím kSecAttrAccessGroup trong các thuộc tính từ điển. Giá trị của khóa này phải là tên của nhóm truy cập keychain mà tất cả các chương trình sẽ chia sẻ mục này thuộc về.
Khi bạn sử dụng Xcode để tạo ứng dụng, Xcode thêm một mã số nhận dạng ứng dụng vào gói ứng dụng. Keychain Dịch vụ sử dụng quyền này để cấp cho ứng dụng quyền truy cập vào các mặt hàng keychain của riêng mình .Bạn cũng có thể thêm nhóm truy cập keychain quyền truy cập vào ứng dụng và trong danh sách thuộc tính quyền lợi tệp, chỉ định một loạt nhóm truy cập keychain mà ứng dụng thuộc về.
4. Các gợi ý bổ sung từ Google mà tôi chưa đề cập ở trên.
Vui lòng xem "Google Sign-In for iOS". Đây là mẫu mã để sử dụng GIDSignIn
:
- Nhận một tham chiếu đến
GIDSignIn
dụ chia sẻ: GIDSignIn *signIn = [GIDSignIn sharedInstance];
- Đặt OAuth 2.0 phạm vi bạn muốn yêu cầu:
[signIn setScopes:[NSArray arrayWithObject:@"https://www.googleapis.com/auth/plus.login"]];
- Gọi
[signIn setDelegate:self];
- Set lên phương thức ủy quyền
signIn:didSignInForUser:withError:
.
- Gọi
handleURL
trên phiên bản được chia sẻ từ application:openUrl:
... trong ủy quyền ứng dụng của bạn.
- Gọi
signIn
trên phiên bản được chia sẻ;
Bạn cần phải đi với phần mở rộng hành động bạn không thể làm điều đó trong phần mở rộng chia sẻ Có một số hạn chế cho tiện ích mở rộng Vui lòng tham khảo liên kết này ---- http: //stackoverflow.com/questions/35626898/scan-functionality- không làm việc-trên-hành động-mở rộngno-camera-mở-to-scan – Sanju
Hmm, tôi không chắc chắn. Điều duy nhất ở đây là cách google framework xử lý keychain. Nhưng tôi sẽ thử. Cảm ơn – sahara108