2016-12-04 4 views
1

私は長い間この問題に苦労していましたが、トンネルの終わりに光が見えません。私はionicのモバイルアプリを開発しています。私はfirebaseを使用していますが、私はcordova-plugin-googleplusでログインボタンを実装しました。私は最初は働いていましたが、最近はクリーンな状態でiOS用のプラットフォームを追加した後、コンソール上で「キーチェーンエラー」というメッセージが表示されなくなりました。ログイン時にキーチェーンエラーが発生しています

Androidではうまく動作します。今すぐすべてを試しました(キーチェーンの共有機能を無効にして再度有効にし、すべての環境をクリーンアップして再構築し、GoogleService-Info.plist全体をチェックし、reversed_client_idを確認しました...)不足している)。

誰かが私に手を差し伸べることができたら、本当に感謝します。ありがとうございました。

いくつかの追加情報:

Your system information: 

Cordova CLI: 6.4.0 
Gulp version: CLI version 3.9.1 
Gulp local: Local version 3.9.1 
Ionic Framework Version: 1.2.1-nightly-1867 
Ionic CLI Version: 2.1.4 
Ionic App Lib Version: 2.1.2 
ios-deploy version: 1.8.6 
ios-sim version: 5.0.11 
OS: Mac OS X Sierra 
Node Version: v4.4.4 
Xcode version: Xcode 8.1 Build version 8B62 

プラグインがインストールさ:

cordova-plugin-calendar 4.5.5 "Calendar" 
cordova-plugin-console 1.0.4 "Console" 
cordova-plugin-device 1.1.3 "Device" 
cordova-plugin-dialogs 1.3.0 "Notification" 
cordova-plugin-fcm 1.1.5 "FCMPlugin" 
cordova-plugin-googleplus 5.1.1 "Google SignIn" 
cordova-plugin-inappbrowser 1.5.0 "InAppBrowser" 
cordova-plugin-splashscreen 2.1.0 "Splashscreen" 
cordova-plugin-transport-security 0.1.2 "App Transport Security" 
cordova-plugin-whitelist 1.3.0 "Whitelist" 
ionic-plugin-keyboard 2.2.1 "Keyboard" 

config.xmlファイル(その一部):

<plugin name="cordova-plugin-googleplus" spec="~5.1.1"> 
    <variable name="REVERSED_CLIENT_ID" value="XXXX-THIS_HAS_THE_CORRECT_ID-XXXXX"/> 
    </plugin> 

コンソールにエラーメッセージ:

keychain error 

エミュレータのSYSTEM.LOGからいくつかのエラーメッセージが:

securityd[16035]: found no keychain client entitlements. task=Xxxxx App[17178]/1#0 LF=0 procid=com.xxxx.xxxx cs_flags=0x22000201 

コントローラでのログイン機能:

$scope.loginGoogle = function(){ 
    $ionicLoading.show(); 
    LogService.log(TAG, 'webClientId : ' + 'XXXXX'); 
    var clienInfo = {}; 

    if(ionic.Platform.isAndroid()) 
    { 
     clienInfo.webClientId = 'XXXXXXX'; 
    } 

    window.plugins.googleplus.login(
     clienInfo, 
     function (obj) { 
     // alert(JSON.stringify(obj)); 

     LogService.log(TAG, 'googleplus.login result : ' + JSON.stringify(obj)); 
     LogService.log(TAG, 'obj.idToken : ' + obj.idToken); 
     // obj.email   // '[email protected]' 
     // obj.userId   // user id 
     // obj.displayName // 'Eddy Verbruggen' 
     // obj.familyName  // 'Verbruggen' 
     // obj.givenName  // 'Eddy' 
     // obj.imageUrl  // 'http://link-to-my-profilepic.google.com' 
     // obj.idToken  // idToken that can be exchanged to verify user identity. 
     // obj.serverAuthCode // Auth code that can be exchanged for an access token and refresh token for offline access 
     var token = obj.idToken; 
     var userData = { 
      displayName : obj.displayName, 
      avatar : obj.imageUrl, 
      currentSessionOn : 'google' 
     }; 
     return AuthService.loginGoogle(token, userData).then(function (result) { 
      $rootScope.$broadcast(AUTH_EVENTS.loginSuccess); 
      $ionicLoading.hide(); 
      $state.go('app.tabs.events'); 
     }).catch(function(error){ 
      $ionicLoading.hide(); 
      $scope.message = error.message; 
      $timeout(function() { 
       $scope.message = null; 
      }, 3000); 
      $rootScope.$broadcast(AUTH_EVENTS.loginFailed);  
     }); 
     }, 
     function (msg) { 
     LogService.logError(TAG, 'plugins.googleplus.login error: ' + msg); 
     $ionicLoading.hide(); 
     }); 
    }; 
+0

問題を解決しましたか?私は同じ問題に直面しています:/ –

+0

Xcodeからプロジェクトを起動すると、問題を解決するように見えます。この問題は、Ionic CLIを使用しても引き続き発生します。 – Nitrato

答えて

0

のXcodeからプロジェクトを起動するには、問題を解決するために表示されます。この問題は、Ionic CLIを使用しても引き続き発生します。

Issue reported in github

+0

上記と逆の問題があるようです。プロジェクトをionic serveから起動するとうまくいきます(ただし、Cordova PluginではなくAngularFire2を使用しています)。しかし、Xcodeでプロジェクトを起動すると、キーチェーンのエラーが出ます – Richard

関連する問題