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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Firebase

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

Xcode

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

Swift

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

Q&A

解決済

1回答

861閲覧

class AppDelegate: UIResponder, UIApplicationDelegate  Thread 1: signal SIGABRTエラーについて

matt555

総合スコア11

Firebase

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

Xcode

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

Swift

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

0グッド

0クリップ

投稿2019/06/10 14:10

編集2019/06/11 13:55

swift初心者です。
このたび、swiftを使ってサインアップ画面を作ってみたのですが、AppDelegate.swiftの
class AppDelegate: UIResponder, UIApplicationDelegate
の行で以下のようなエラー文が発生していました。
outlet,actionの接続は問題なし、再起動も試しました。
Thread 1:signal SIGABRT

原因は何でしょうか?
下にAppDelegate.swiftとviewController.swiftのソースコードを載せておきます。

AppDelegate

1import UIKit 2import Firebase 3 4@UIApplicationMain 5class AppDelegate: UIResponder, UIApplicationDelegate { 6 7 var window: UIWindow? 8 9 10 func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 11 FirebaseApp.configure() 12 // Override point for customization after application launch. 13 return true 14 } 15 16 func applicationWillResignActive(_ application: UIApplication) { 17 // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 18 // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 19 } 20 21 func applicationDidEnterBackground(_ application: UIApplication) { 22 // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 23 // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 24 } 25 26 func applicationWillEnterForeground(_ application: UIApplication) { 27 // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 28 } 29 30 func applicationDidBecomeActive(_ application: UIApplication) { 31 // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 32 } 33 34 func applicationWillTerminate(_ application: UIApplication) { 35 // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 36 } 37 38 39} 40 41

viewController

1import UIKit 2import Firebase 3import FirebaseAuth 4 5class ViewController: UIViewController { 6 7 @IBOutlet weak var email: UITextField! 8 9 @IBOutlet weak var password: UITextField! 10 11 override func viewDidLoad() { 12 super.viewDidLoad() 13 // Do any additional setup after loading the view. 14 } 15 16 @IBAction func signup(_ sender: Any) { 17 18 Auth.auth().createUser(withEmail: email.text!, password: password.text!) { (user, error) in 19 if error != nil { 20 print("登録できませんでした") 21 } 22 23 else { 24 print("登録できました") 25 } 26 } 27 } 28} 29 30

console

12019-06-11 15:37:50.958360+0900 car pool[3436:233604] - <AppMeasurement>[I-ACS036002] Analytics screen reporting is enabled. Call +[FIRAnalytics setScreenName:setScreenClass:] to set the screen name or override the default screen class name. To disable screen reporting, set the flag FirebaseScreenReportingEnabled to NO (boolean) in the Info.plist 22019-06-11 15:37:51.050371+0900 car pool[3436:233604] 6.2.0 - [Firebase/Core][I-COR000012] Could not locate configuration file: 'GoogleService-Info.plist'. 32019-06-11 15:37:51.052017+0900 car pool[3436:233604] 6.2.0 - [Firebase/Core][I-COR000005] No app has been configured yet. 42019-06-11 15:37:51.112385+0900 car pool[3436:233527] *** Terminating app due to uncaught exception 'com.firebase.core', reason: '`[FIRApp configure];` (`FirebaseApp.configure()` in Swift) could not find a valid GoogleService-Info.plist in your project. Please download one from https://console.firebase.google.com/.' 5*** First throw call stack: 6(0x188bb927c 0x187d939f8 0x188ac34b0 0x1028b1de0 0x102856e70 0x102856f68 0x1b54eae30 0x1b54ec594 0x1b54f1d20 0x1b4db52dc 0x1b4dbd874 0x1b4db4f60 0x1b4db5850 0x1b4db3b9c 0x1b4db3864 0x1b4db83a4 0x1b4db9188 0x1b4db825c 0x1b4dbcf5c 0x1b54f0328 0x1b50ecba8 0x18b5349fc 0x18b53e40c 0x18b53dc14 0x1054fcc74 0x105500840 0x18b56f040 0x18b56ecdc 0x18b56f294 0x188b4b018 0x188b4af98 0x188b4a880 0x188b457bc 0x188b450b0 0x18ad4579c 0x1b54f3978 0x10285788c 0x18860a8e0) 7libc++abi.dylib: terminating with uncaught exception of type NSException

イメージ説明
初歩的なことかもしれませんがご教授願います。

気になる質問をクリップする

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

MasakiHori

2019/06/11 01:40

コンソール(Xcodeソースコード下部)に表示されるエラーをすべて記載してください
matt555

2019/06/11 06:41

追記させていただきました。 こちらでしょうか?
guest

回答1

0

ベストアンサー

Firebaseのコンソールの該当プロジェクトの「設定」からGoogleService-Info.plistをダウンロードしてプロジェクトに追加してください。


追記

##短い回答
ファイル名をGoogleService-Info.plistに変更してください。

なお、プロジェクトへのファイルの追加の方法が誤っていた場合は、ファイル名の変更が出来ません.
その時はまたここで聞いてください。

##少し長い回答
GoogleService-Info.plistにはあなたのFirebaseのプロジェクトに接続するために必要な情報が記載されています。
この情報なしにはFirebaseは使えませんので、このファイルが見つからない場合あるいはファイルが不正な場合はエラーとなります。
Firebaseはファイル名を頼りにこのファイルを探しますので、ファイル名は一文字たりとも違っていてはいけません。

##長い回答
###エラーは必ず読む
プログラミングにおいてエラーを読むことは必須事項です。読んだほうがいい、ではなく、読めなければならない、です。
私がエラーを記載していただいてすぐに回答できたのは、発生している問題がエラーに書かれているからです。
エラーが読めればここで聞く必要もなかったかもしれません。

###エラーの読み方
エラーを読むには慣れとコツが必要です。
それを少し記します。

まず重要なのは最初から全てを読む必要はないということです。
エラーというものは冒頭部分には意味不明な記号や文字列が並ぶものですが、最初からここを読もうとする必要はないです。場合によっては全く読む必要がありません。

まず読むべきは、英文です。
英文を忌避していたらエラーが読めないだけでなく、新しい情報やより詳しい情報も得られません。
Google翻訳にお願いすれば、まあまあの精度で翻訳してくれる時代です。どんどん利用してください。

そしてさらに、エラーを読むに際し英文ですら全て読む必要はありません

提示のエラーを再掲します。ただし、英文のみを抜き出します。

Analytics screen reporting is enabled. Call +[FIRAnalytics setScreenName:setScreenClass:] to set the screen name or override the default screen class name. To disable screen reporting, set the flag FirebaseScreenReportingEnabled to NO (boolean) in the Info.plist
Could not locate configuration file: 'GoogleService-Info.plist'.

No app has been configured yet.

Terminating app due to uncaught exception 'com.firebase.core', reason: '[FIRApp configure]; (FirebaseApp.configure() in Swift) could not find a valid GoogleService-Info.plist in your project. Please download one from https://console.firebase.google.com/.'

これだけすっきりすれば、読めるように気になりませんか?

ここで必要なのは、最後の行の後半のみです。

could not find a valid GoogleService-Info.plist in your project.
Please download one from https://console.firebase.google.com/.'

これはGoogle翻訳に頼らずとも読めるでしょう。ざっくりいえば「GoogleService-Info.plistが見つからない」です。
validがちょっと耳慣れないかもしれませんが、プログラミングをしていれば当たり前のように使う単語です。分からない場合は今すぐ調べて覚えてください。

このようにエラーを読めるようになれば、問題が簡単に解消されるようになります。
エラーを読む努力を重ねてください。

###問題点
さて、あなたは、「(GoogleService-Info.plistは)プロジェクトに追加してあります」とコメントしました。

これはプログラミングをする上では完全に失格のこたえです。

完全に一致していない文字列は別物と扱われるのはプログラマとしては当然のことです。
よく質問に対し、「大文字小文字が間違えている」とコメントされることがありますが、これもこの延長です。
プログラマにとっては一文字の違い、大文字小文字の違いは重要な要素です。これが違えば、別のものとして扱われる。それがプログラミングです。

私はこの点であなたが問題解決に向けて何の努力もしていないのではないかと疑念しました。
この疑念は私の間違いでしたが、それほど基本的なことでした。

###エラーは続くもの
この回答は現在発生しているエラーを解消するだけに過ぎません。
このエラーを解消したあと、あらたに別の問題が顕在化する可能性もあります。
その問題の解消法が分からない場合は新しく質問を作成して聞いてください。

複数の問題をひとつの質問内で続けてすることは、こういった質問サイトでは嫌われる行為のひとつです。

投稿2019/06/11 07:14

編集2019/06/12 12:15
MasakiHori

総合スコア3384

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

matt555

2019/06/11 13:54

プロジェクトに追加してあります
matt555

2019/06/11 13:55

追記しておきました
MasakiHori

2019/06/11 16:26 編集

ひとつ聞かせてください あなたは答えさえ書いてくれればその意味が分からなくてもいいというタイプの質問者さんですか? もしそうなら僕はとても楽なんですけど
matt555

2019/06/12 02:29

言っている意味がよくわからないので詳しく教えてくれますか? それをしろと言われただけで解決しないと思うので回答する側も配慮していただきたいですね。 Google service-infoを追加する理由と なぜ追加してないと思ったのかそして追加したら治るのかを記述していただかないと 追加してくださいに対する回答は追記しましたしかできないのは当然だと思いませんか? 急に喧嘩ごしに来るのではなくクロージングも対処してください。 回答してくださるのはありがたいのですが正直わかりにくいです。
MasakiHori

2019/06/12 03:27

追加された画像を見てあなたがご自身で問題を解決しようと努力しているようには見えなかったので、もし答えだけが欲しい人であれば答えだけ書いて終わろうと思ったのです。 詳細に追記しますので時間かかります。
matt555

2019/06/12 03:38

毎回努力していると言わなければいけませんでしたか汗 自分が何時間この問題についていろいろ探してたかここで質問した経緯まで伝えたくなりますが、 詳細を追記してくださるということでよろしくお願いします。 ありがとうございます。
matt555

2019/06/13 08:40

詳しいコメントありがとうございました。 解決することができました。 今後コンソールをしっかり見て確認するようにします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問