質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.06%

  • Swift

    5896questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • Xcode

    3376questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

  • Firebase

    383questions

    Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Thread 1: signal SIGABRTでページが遷移しない

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 226

tanaka_atsushi

score 17

swift4
xcode9.1

ストーリーボードは正しくコネクトしています。(2重コネクトは無し)

segueの流れはトップ画面→サインアップ画面→ログイン画面で、
サインアップ画面からログイン画面に遷移するためのbuttonをクリックするとクラッシュしThread 1: signal SIGABRTエラーになります。

コンソールには、
libc++abi.dylib: terminating with uncaught exception of type NSExceptionの表示のみです。
(edit scheme上でOS_ACTIVITY_MODE、disable設定をしているから他のエラーは出ないのでしょうか?)

エラーの原因を教えて頂きたいです。
よろしくお願いします。

(App Delegate)

import UIKit
import Firebase
import FirebaseAuth
import GoogleSignIn

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, GIDSignInDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions:
        [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        print("アプリ起動時の処理だよ")
        FirebaseApp.configure()

                GIDSignIn.sharedInstance().clientID = FirebaseApp.app()?.options.clientID
                GIDSignIn.sharedInstance().delegate = self
                return true
    }
    func applicationWillResignActive(_ application: UIApplication) {
               print("アプリを閉じそうな感じだよ")
    }
            func applicationDidEnterBackground(_ application: UIApplication) {
               print("アプリを閉じたよ")
    }
            func applicationWillEnterForeground(_ application: UIApplication) {
               print("アプリを開きそうな感じだよ")
    }
            func applicationDidBecomeActive(_ application: UIApplication) {
               print("アプリを開いたよ")
    }
            func applicationWillTerminate(_ application: UIApplication) {
               print("フリックしてアプリを終了させたよ")
    }

    func application(_ app: UIApplication, open url: URL, options:
        [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {

        let handled = GIDSignIn.sharedInstance().handle(url, sourceApplication:options[UIApplicationOpenURLOptionsKey.sourceApplication] as? String!, annotation: options[UIApplicationOpenURLOptionsKey.annotation])

         return handled
    }
    func sign(_ signIn: GIDSignIn!, didSignInFor user: GIDGoogleUser!, withError error: Error?)
    {
        if let error = error {
           print(error.localizedDescription)
            return
    }
        print("Googleログインが成功したよ")

        guard let authentication = user.authentication else { return }

        let credential = GoogleAuthProvider.credential(withIDToken: authentication.idToken,
         accessToken: authentication.accessToken)

        Auth.auth().signIn(with: credential, completion: { (user, error) in
            if let error = error{
                print(error.localizedDescription)
                return
    }
            print("Firebaseに正常にログインしたよ")
    })}
    func sign(_  signIn: GIDSignIn!, didDisconnectWith user: GIDGoogleUser!, withError error: Error!) {
    }}

・12/18追記しました
コンソールに現れる[MC]から始まるエラーは、
xcode9.0へアップデートしたらアプリを実行できない(skyway)というtetatailの過去の質問と同じでした。

(コンソールのエラー画面です↓)

アプリ起動時の処理だよ
2017-12-18 12:08:02.195612+0900 SNS01[9091:773382] [Firebase/Analytics][I-ACS023007] Firebase Analytics v.40005000 started
2017-12-18 12:08:02.195927+0900 SNS01[9091:773382] [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see http://goo.gl/RfcP7r)
アプリを開いたよ
2017-12-18 12:08:03.463733+0900 SNS01[9091:773424] TIC Read Status [2:0x0]: 1:57
2017-12-18 12:08:03.463893+0900 SNS01[9091:773424] TIC Read Status [2:0x0]: 1:57
2017-12-18 12:08:03.471455+0900 SNS01[9091:773425] TIC Read Status [1:0x0]: 1:57
2017-12-18 12:08:03.471586+0900 SNS01[9091:773425] TIC Read Status [1:0x0]: 1:57
2017-12-18 12:08:03.472300+0900 SNS01[9091:773425] TIC Read Status [3:0x0]: 1:57
2017-12-18 12:08:03.472414+0900 SNS01[9091:773425] TIC Read Status [3:0x0]: 1:57
2017-12-18 12:08:04.016747+0900 SNS01[9091:773382] TIC Read Status [4:0x0]: 1:57
2017-12-18 12:08:04.017050+0900 SNS01[9091:773382] TIC Read Status [4:0x0]: 1:57
2017-12-18 12:08:12.416132+0900 SNS01[9091:773069] [MC] Lazy loading NSBundle MobileCoreServices.framework
2017-12-18 12:08:12.417354+0900 SNS01[9091:773069] [MC] Loaded MobileCoreServices.framework
2017-12-18 12:08:12.420550+0900 SNS01[9091:773069] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /Users/-----------------------ここは消しています---------------------------------/data/Containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles
2017-12-18 12:08:16.969304+0900 SNS01[9091:773069] Could not load the "google.png" image referenced from a nib in the bundle with identifier "com.xcode22363846Win.SNS01"
2017-12-18 12:08:17.024726+0900 SNS01[9091:773069] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[UITableViewController loadView] instantiated view controller with identifier "LogInViewController" from storyboard "Main", but didn't get a UITableView.'
*** First throw call stack:
(
    0   CoreFoundation                      0x000000010ac871ab __exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x000000010a31cf41 objc_exception_throw + 48
    2   CoreFoundation                      0x000000010acfbcb5 +[NSException raise:format:] + 197
    3   UIKit                               0x000000010bcb91cc -[UITableViewController loadView] + 629
    4   UIKit                               0x000000010b9b8495 -[UIViewController loadViewIfRequired] + 195
    5   UIKit                               0x000000010b9b8cf2 -[UIViewController view] + 27
    6   UIKit                               0x000000010c4483a9 -[_UIFullscreenPresentationController _setPresentedViewController:] + 89
    7   UIKit                               0x000000010b986ba7 -[UIPresentationController initWithPresentedViewController:presentingViewController:] + 133
    8   UIKit                               0x000000010b9cbf6a -[UIViewController _presentViewController:withAnimationController:completion:] + 3808
    9   UIKit                               0x000000010b9cedad __63-[UIViewController _presentViewController:animated:completion:]_block_invoke + 99
    10  UIKit                               0x000000010b9cf47d -[UIViewController _performCoordinatedPresentOrDismiss:animated:] + 532
    11  UIKit                               0x000000010b9ced0c -[UIViewController _presentViewController:animated:completion:] + 181
    12  UIKit                               0x000000010b9cf06b -[UIViewController presentViewController:animated:completion:] + 159
    13  UIKit                               0x000000010b9d43ee -[UIViewController _showViewController:withAction:sender:] + 274
    14  UIKit                               0x000000010bf7c643 __66-[UIStoryboardShowSegueTemplate newDefaultPerformHandlerForSegue:]_block_invoke + 134
    15  UIKit                               0x000000010c13adcb -[UIStoryboardSegueTemplate _performWithDestinationViewController:sender:] + 279
    16  UIKit                               0x000000010c13ac83 -[UIStoryboardSegueTemplate _perform:] + 82
    17  UIKit                               0x000000010c13af4b -[UIStoryboardSegueTemplate perform:] + 157
    18  UIKit                               0x000000010b815275 -[UIApplication sendAction:to:from:forEvent:] + 83
    19  UIKit                               0x000000010b9924a2 -[UIControl sendAction:to:forEvent:] + 67
    20  UIKit                               0x000000010b9927bf -[UIControl _sendActionsForEvents:withEvent:] + 450
    21  UIKit                               0x000000010b9916ec -[UIControl touchesEnded:withEvent:] + 618
    22  UIKit                               0x000000010b88abbb -[UIWindow _sendTouchesForEvent:] + 2807
    23  UIKit                               0x000000010b88c2de -[UIWindow sendEvent:] + 4124
    24  UIKit                               0x000000010b82fe36 -[UIApplication sendEvent:] + 352
    25  UIKit                               0x000000010c172434 __dispatchPreprocessedEventFromEventQueue + 2809
    26  UIKit                               0x000000010c175089 __handleEventQueueInternal + 5957
    27  CoreFoundation                      0x000000010ac2a231 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    28  CoreFoundation                      0x000000010acc9e41 __CFRunLoopDoSource0 + 81
    29  CoreFoundation                      0x000000010ac0eb49 __CFRunLoopDoSources0 + 185
    30  CoreFoundation                      0x000000010ac0e12f __CFRunLoopRun + 1279
    31  CoreFoundation                      0x000000010ac0d9b9 CFRunLoopRunSpecific + 409
    32  GraphicsServices                    0x000000010f9d99c6 GSEventRunModal + 62
    33  UIKit                               0x000000010b8135e8 UIApplicationMain + 159
    34  SNS01                               0x0000000108206127 main + 55
    35  libdyld.dylib                       0x000000010e6dbd81 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • tanaka_atsushi

    2017/12/18 12:32

    画像を追記しました。

    キャンセル

  • fuzzball

    2017/12/18 12:42

    ログはテキストにして下さい。コピペ出来ません。

    キャンセル

  • tanaka_atsushi

    2017/12/18 12:49

    すみません!テキストに修正しました。

    キャンセル

回答 1

checkベストアンサー

+1

class LogInViewController: UITableViewController, GIDSignInUIDelegate {

UITableViewControllerではなく、UIViewControllerではないでしょうか?

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/18 14:55

    fuzzball様
    UITableViewControllerからUIViewControllerに修正すると、クラッシュが解消し、サインアップ画面→ログイン画面に問題なく遷移しました!googleサインインのボタンをクリックできた所まで確認しました!本当にありがとうございます。
    これは単にUITableViewControllerを使用していない為起きていたエラーでしょうか?

    キャンセル

  • 2017/12/18 15:12

    StoryboardではUIViewController、コードではUITableViewController、という矛盾が原因です。

    >>reason: '-[UITableViewController loadView] instantiated view controller with identifier "LogInViewController" from storyboard "Main", but didn't get a UITableView.

    UITableViewControllerなのにUITableViewを取得出来ない → Storyboard上で実際に配置されているのはUIViewControllerだから。

    ということです。(たぶん)

    キャンセル

  • 2017/12/18 15:23 編集

    ご指摘の通り、UITableViewControllerは使っていませんでした。
    私が参考にしていたサイト
    [iOS で Google ログインを使用して認証する] (https://firebase.google.com/docs/auth/ios/google-signin)で、Loginビューコントローラーにはclass MainViewController: UITableViewController, GIDSignInUIDelegate { というプロトコルを実装するように書いていまして、それをそのままコピペした事により発生していたエラーだと思いました。解決に1週間程かかりましたが、その間皆様に知らない知識を教えて頂くきっかけとなり良かったです。益々アプリを作れるようになりたいです。fuzzball様、ありがとうございます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 91.06%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    JSONデータをパースできない

    前提・実現したいこと JSONデータをパースして得られたデータをTextViewに表示させたい。 発生している問題・エラーメッセージ ログにJSONの生データを出力するこ

  • 解決済

    ツイートの投稿

    大学で卒業研究としてTwitterAPIを利用したアプリケーションを開発しています。 その過程で以下のようにツイート投稿のところで行き詰まりました。 同じようなコードでタイムラ

  • 受付中

    他のクラスからDelegateメソッドを呼ぶ方法

    Swiftでアプリを作っていて、色んなアプリで使うメソッドはまとめて再利用できるようにしたいと考えています。 そこでメールを送るメソッドを共通で使うためのクラスに入れたところ、D

  • 解決済

    swiftでUILocalNotificationを使ったアラート表示ができません。

    swiftでUILocalNotificationを使ってアラート表示をしようとしていますが、どうもうまくいきません。アプリの通知設定を『通知』にすればうまくいくと思うのですが、ソ

  • 解決済

    Appiraterのswiftでの挙動

    swift2.0環境です。 Appiraterというライブラリを読み込んで、 AppDelegate.swiftに下記コードを記述していますが、表示されません。

  • 解決済

    UIAlertController上のUITextFieldの未入力を防ぐ方法

    前提・実現したいこと 質問をご覧いただきまして、ありがとうございます。 現在、UIAlertController上のUITextFieldでinputしてもらうという機能を

  • 解決済

    Swift3.0でAppDelegateにアクセスするオブジェクトを作りたいです。

    前提・実現したいこと Swift3.0でAppDelegateにアクセスするオブジェクトを作りたいです。 使っている教科書がswift2.0のものでして、 調べて書き換え

  • 解決済

    画面遷移でのデータの受け渡しがうまくできない

    前提・実現したいこと Swiftで、UITableViewのCellを選択した時に別のViewControllerに遷移し、その時選択したセル番号を表示させたいと思っています。

同じタグがついた質問を見る

  • Swift

    5896questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • Xcode

    3376questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

  • Firebase

    383questions

    Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。