ブリッジ-がheader.hにおいて
import <GoogleSignIn/GoogleSignIn.h>
import <Google/Core.h>
AppDelegate.swift
2.
import Google
GGLContext
オブジェクト設定:追加、そして
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
}
をアプリにGIDSignInButton
を表示します。
最後に、ビューコントローラで、signIn:didSignInForUser:
デリゲートメソッドを実装します。このメソッドは、アプリケーションを認証するときにサインインボタンがtapped:
のときに呼び出されます。アプリケーション/拡張
あなたがサインインすると、GoogleのフレームワークiOSのキーホルダーに新しい資格情報を追加するためにネイティブのiOSメソッドを使用する必要があります間
- (void)signIn:(GIDSignIn *)signIn
didSignInForUser:(GIDGoogleUser *)user
withError:(NSError *)error {
// Perform any operations on signed in user here.
// ...
}
3.共有資格情報。したがって、彼らはキーチェーンに1つまたは複数の項目を追加する方法を使用しています(SecItemAdd(_:_:)
)。
アプリと拡張機能の両方で同じキーチェーン項目にアクセスするには、プロジェクト設定のXcode's Capabilitiesセクションのアプリと拡張機能の両方で「キーチェーン共有」を有効にする必要があります。これを行うと、Xcodeはこの新しい機能を反映する必要があるため、アプリIDとプロビジョニングプロファイルを更新したいと考えています。 (ステップ2)のアプリケーションを再認証して、適切なグループに資格情報を取得する必要があります。
Apple Documentationは明確に述べている:
を使用すると、複数の のアプリケーション間で共有するための新しいキーチェーン項目をしたい場合は、属性 辞書でkSecAttrAccessGroupキーが含まれます。このキーの値は、 このアイテムを共有するすべてのプログラムが属するキーチェーンの名前である必要があります。 。
アプリケーションを作成するためのXcodeを使用する場合は、Xcodeのは、アプリケーションバンドルに アプリケーション識別子資格を追加します。キーチェーン サービスはこの資格を使用して、 独自のキーチェーンアイテムへのアプリケーションアクセスを許可します。キーチェーンアクセスグループ 資格をアプリケーションに追加し、資格プロパティーリスト ファイルに アプリケーションが属するキーチェーンアクセスグループの配列を指定することもできます。
4.私が上記で言及していない追加のヒント。
"Google Sign-In for iOS"を参照してください。インスタンスを共有GIDSignIn
への参照を取得します
- :ここ は
GIDSignIn
を使用するためのサンプルコードです[signIn setScopes:[NSArray arrayWithObject:@"https://www.googleapis.com/auth/plus.login"]];
- コール
[signIn setDelegate:self];
- セット:
GIDSignIn *signIn = [GIDSignIn sharedInstance];
- はあなたが要求したいOAuth 2.0のスコープを設定します。デリゲートメソッド
signIn:didSignInForUser:withError:
。
- ...の共有インスタンスの
handleURL
からアプリデリゲートに電話してください。 - 共有インスタンスの
signIn
を呼び出します。
あなたはShare拡張機能ではできないアクション拡張機能が必要です。拡張機能にはいくつかの制限があります。このリンクを参照してください---- http://stackoverflow.com/questions/35626898/scan-functionality-動作していないときの動作 - 拡張 - カメラ - スキャンの開始 – Sanju
うーん、わからない。ここで唯一のことは、Googleのフレームワークがキーチェーンを処理する方法です。しかし、私はそれを試してみましょう。ありがとう – sahara108