🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Xcode

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

Swift

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

Q&A

解決済

1回答

2354閲覧

Thread 1: signal SIGABRT が表示される。

kawakawaji

総合スコア8

Objective-C

Objective-Cはオブジェクト指向型のプログラミング言語のひとつです。C言語をベースにSmalltalkが取り入れられています。

Xcode

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

Swift

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

0グッド

0クリップ

投稿2019/11/14 14:11

前提・実現したいこと

大学生です。
swiftで音声信号処理に関するアプリを開発しています。
swift学習期間は3カ月ほどです。

Thread 1: signal SIGABRTとエラーメッセージが出てアプリを実行することができません。

発生している問題・エラーメッセージ

ビルドしてシュミレーターを立ち上げて、recordbuttonを押した際に、録音を行うことができず
Thread 1: signal SIGABRT と表示されます。

2019-11-14 22:27:58.463326+0900 whisc2[5778:303419] libMobileGestalt MobileGestalt.c:890: MGIsDeviceOneOfType is not supported on this platform. 2019-11-14 22:28:54.540055+0900 whisc2[5778:303983] [AudioHAL_Client] AudioHardware.cpp:666:AudioObjectGetPropertyData: AudioObjectGetPropertyData: no object with given ID 0 2019-11-14 22:28:54.602883+0900 whisc2[5778:303419] [aurioc] 1029: failed: -10851 (enable 1, outf< 2 ch, 0 Hz, Int16, inter> inf< 2 ch, 0 Hz, Int16, inter>) 2019-11-14 22:28:54.605425+0900 whisc2[5778:303419] [aurioc] 1029: failed: -10851 (enable 1, outf< 2 ch, 0 Hz, Int16, inter> inf< 2 ch, 0 Hz, Int16, inter>) 2019-11-14 22:28:54.605989+0900 whisc2[5778:303419] [avae] AVAEInternal.h:70:_AVAE_Check: required condition is false: [AVAudioIONodeImpl.mm:910:SetOutputFormat: (IsFormatSampleRateAndChannelCountValid(hwFormat))] 2019-11-14 22:28:54.618608+0900 whisc2[5778:303419] *** Terminating app due to uncaught exception 'com.apple.coreaudio.avfaudio', reason: 'required condition is false: IsFormatSampleRateAndChannelCountValid(hwFormat)' *** First throw call stack: ( 0 CoreFoundation 0x000000010d1836fb __exceptionPreprocess + 331 1 libobjc.A.dylib 0x000000010c727ac5 objc_exception_throw + 48 2 CoreFoundation 0x000000010d183482 +[NSException raise:format:arguments:] + 98 3 AVFAudio 0x000000010e008f3c _Z19AVAE_RaiseExceptionP8NSStringz + 156 4 AVFAudio 0x000000010e067937 _Z11_AVAE_CheckPKciS0_S0_b + 295 5 AVFAudio 0x000000010e067ef1 _ZN17AVAudioIONodeImpl15SetOutputFormatEmP13AVAudioFormat + 273 6 AVFAudio 0x000000010e000f8e _ZN18AVAudioEngineGraph8_ConnectEP19AVAudioNodeImplBaseS1_jjP13AVAudioFormat + 1670 7 AVFAudio 0x000000010e06f598 _ZN17AVAudioEngineImpl7ConnectEP11AVAudioNodeS1_mmP13AVAudioFormat + 194 8 AVFAudio 0x000000010e06f5ff -[AVAudioEngine connect:to:format:] + 83 9 whisc2 0x000000010b2fc936 $s6whisc214ViewControllerC11startRecordyyF + 1654 10 whisc2 0x000000010b2fa9fc $s6whisc214ViewControllerC3recyyypF + 1884 11 whisc2 0x000000010b2faa60 $s6whisc214ViewControllerC3recyyypFTo + 80 12 UIKitCore 0x00000001191a3204 -[UIApplication sendAction:to:from:forEvent:] + 83 13 UIKitCore 0x0000000118bf8c19 -[UIControl sendAction:to:forEvent:] + 67 14 UIKitCore 0x0000000118bf8f36 -[UIControl _sendActionsForEvents:withEvent:] + 450 15 UIKitCore 0x0000000118bf7eec -[UIControl touchesEnded:withEvent:] + 583 16 UIKitCore 0x00000001191dbeee -[UIWindow _sendTouchesForEvent:] + 2547 17 UIKitCore 0x00000001191dd5d2 -[UIWindow sendEvent:] + 4079 18 UIKitCore 0x00000001191bbd16 -[UIApplication sendEvent:] + 356 19 UIKitCore 0x000000011928c293 __dispatchPreprocessedEventFromEventQueue + 3232 20 UIKitCore 0x000000011928ebb9 __handleEventQueueInternal + 5911 21 CoreFound![イメージ説明](34656799d470c2d17b7b8f8ca2b54714.png)ation 0x000000010d0eabe1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17 22 CoreFoundation 0x000000010d0ea463 __CFRunLoopDoSources0 + 243 23 CoreFoundation 0x000000010d0e4b1f __CFRunLoopRun + 1231 24 CoreFoundation 0x000000010d0e4302 CFRunLoopRunSpecific + 626 25 GraphicsServices 0x0000000110c462fe GSEventRunModal + 65 26 UIKitCore 0x00000001191a1ba2 UIApplicationMain + 140 27 whisc2 0x000000010b309a88 main + 72 28 libdyld.dylib 0x0000000111212541 start + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException (lldb)

試したこと

outlet接続などがうまくいっていないなどの対策法を見かけましたので、connections inspector,identity inspectorを見ました。viewの接続のところが若干薄く表示されてるような。。。この接続を切りたかったんですが押すことができずでした。そして2枚目のviewに対するcustom classも、、このような感じになっています。ご教授のほどよろしくお願いします。

イメージ説明

イメージ説明

補足情報(FW/ツールのバージョンなど)

Xcode Version 11.2.1 (11B500)

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

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

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

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

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

guest

回答1

0

ベストアンサー

reason: 'required condition is false: IsFormatSampleRateAndChannelCountValid(hwFormat)'

なので、AVAudioEngine.connect(_ node1: AVAudioNode, to node2: AVAudioNode, format: AVAudioFormat?)に渡している情報がまずいでんしょうね。

投稿2019/11/15 02:26

編集2019/11/15 06:18
takabosoft

総合スコア8356

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

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

kawakawaji

2019/11/15 05:04

takabosoftさんアドバイスありがとうございます。 そこの実装コードを探すためにbreakpointでおかしい場所を探しました。見つけた場所は、 self.audioEngine.connect(self.audioEngine.inputNode, to: self.mixer, format: format) であり、この引数として渡されているformatがまずいのではないかと考えました。 実際、formatにマウスを持っていくと次のようなメッセージが表示されました。 expression produced error: error: /var/folders/br/147f_pzn10jbcqsmlbfhl77c0000gx/T/expr15-0d03cb..swift:1:80: error: use of undeclared type 'AVFoundation' Swift._DebuggerSupport.stringForPrintObject(Swift.UnsafePointer<Swift.Optional<AVFoundation.AVAudioFormat>>(bitPattern: 0x127fbb720)!.pointee) です。 ちなみにformatは次のように設定しています。 let format = AVAudioFormat(commonFormat: AVAudioCommonFormat.pcmFormatInt16, sampleRate: 44100.0, channels: 1, interleaved: true) そして、 error: use of undeclared type 'AVFoundation' これも気になりました。 宣言されていないタイプ「AVFoundation」の使用と訳しました。 フレームワークAVFoundationはフォルダとしても追加してあり、importもしていますのでさらに分からなくなってしまいました。 この前まではアプリは録音、再生を行えていたのですが、アップデートしてからおかしくなったような気がします。(私の人為的ミス、操作ミスの可能性もありますが。。) 長々と自分なりの考察をしてみました。見当違いのようでしたら混乱させてしまい申し訳ありません。 よろしくお願いします。
takabosoft

2019/11/15 06:17

えーと、実際に > self.audioEngine.connect(self.audioEngine.inputNode, to: self.mixer, format: format) この行にブレークポイントを張って、ブレークした後ステップオーバーするとクラッシュするところまでは確認してもらった感じですかね? > フレームワークAVFoundationはフォルダとしても追加してあり SwiftならAVFoundationをimportするだけで、フレームワークの追加操作とかは要らなかったと思います。
takabosoft

2019/11/15 06:19

> アップデートしてからおかしくなったような気がします ちなみに何をアップデートしましたか?
kawakawaji

2019/11/15 11:17

一つ目の件です。 breakpointnavigatorでExceptionbreakpointを張り、Thread 1: signal SIGABRTが self.audioEngine.connect(self.audioEngine.inputNode, to: self.mixer, format: format)の横に表示されたという状況です。 ステップオーバーを調べ、今やってみたところ libobjc.A.dylib`objc_exception_throw: 0x10c987a95 <+0>: pushq %rbp 0x10c987a96 <+1>: movq %rsp, %rbp -> 0x10c987a99 <+4>: pushq %r15       ・       ・       ・ pushqのところがThread 1: instruction step overと表示されていました。 ここまでは確認ができました。 2つ目の件です。 そうでしたか、必要だと思って追加していました。(このアプリが正常に動作している時も同じように追加していたので今回のThread 1: signal SIGABRTには関係はしていない操作であると思いました。) 3つ目の件です。 アップデートは最新のxcode 11.2.1にしたという操作です。 以上の情報でよろしいでしょうか? よろしくお願いします。
kawakawaji

2019/11/17 09:53

追記します。 えーと、実際に > self.audioEngine.connect(self.audioEngine.inputNode, to: self.mixer, format: format) この行にブレークポイントを張って、ブレークした後ステップオーバーするとクラッシュするところまでは確認してもらった感じですかね? の件ですが 以上に書かれたデバッグの操作を理解し、 self.audioEngine.connect(self.audioEngine.inputNode, to: self.mixer, format: format) にブレークポイントを張りました。そして、ブレークした後にステップオーバーしました。 そうするとクラッシュするところまでは確認できました。 その時のコンソールの表示が以下の通りです。 2019-11-17 18:49:48.476764+0900 whisc2[1119:26703] libMobileGestalt MobileGestalt.c:890: MGIsDeviceOneOfType is not supported on this platform. FOMAMTを表示Optional(<AVAudioFormat 0x6000029fdcc0: 1 ch, 44100 Hz, Int16>) 2019-11-17 18:50:07.175779+0900 whisc2[1119:27029] [AudioHAL_Client] AudioHardware.cpp:666:AudioObjectGetPropertyData: AudioObjectGetPropertyData: no object with given ID 0 2019-11-17 18:50:07.260013+0900 whisc2[1119:26703] [aurioc] 1029: failed: -10851 (enable 1, outf< 2 ch, 0 Hz, Int16, inter> inf< 2 ch, 0 Hz, Int16, inter>) 2019-11-17 18:50:07.433554+0900 whisc2[1119:26703] [aurioc] 1029: failed: -10851 (enable 1, outf< 2 ch, 0 Hz, Int16, inter> inf< 2 ch, 0 Hz, Int16, inter>) 2019-11-17 18:50:07.434279+0900 whisc2[1119:26703] [avae] AVAEInternal.h:70:_AVAE_Check: required condition is false: [AVAudioIONodeImpl.mm:910:SetOutputFormat: (IsFormatSampleRateAndChannelCountValid(hwFormat))] (lldb) でした。 以上追記です。
takabosoft

2019/11/18 00:36

となると、iOS13のシミュレーターだと例外が出るってことですね。 ・iOS12のシミュレーター ・iOS13の実機 ・iOS12の実機 でどうなるか確認してもらえれば問題の切り分けができませんかね? (※たまにシミュレーターだと動かないけど実機だと問題なく動くこともあるので) あとは > -10851 (enable 1, outf< 2 ch, 0 Hz, Int16, inter> inf< 2 ch, 0 Hz, Int16, inter>) で、0 Hzという表記が気になりますね。 以前だしていただいたコード > let format = AVAudioFormat(commonFormat: AVAudioCommonFormat.pcmFormatInt16, sampleRate: 44100.0, channels: 1, interleaved: true) 以外にフォーマットを指定している箇所があれば、そのへんも見てみると良いかもですね。
kawakawaji

2019/11/18 02:42

iOS12のシミュレーターで動かしてみました。 今まで通り動作することができました! 初心者ながら説明下手の私を導いてくださってありがとうございます。 またデバッグの方法など様々なことを学ばさせていただきました。 takabosoft さん本当にありがとうございました!!
takabosoft

2019/11/18 02:56

それだとiOS13の実機でも一応確認してもらったほうがいいですね。 実機で問題なければいいですが、iOS13だとシミューレータ/実機どちらも駄目だった場合には、そのままでは困るでしょうし。
kawakawaji

2019/11/18 09:00

確かにそうですね。そこでiOS13のシュミレーターでやってみました。 問題なく動作を行うことができました! 実機は修理中なのでiPhone帰ってきてからやってみたいと思います。
takabosoft

2019/11/19 00:19

あれ?最初はどのシミュレーターで動作しなかったのでしょうか?
kawakawaji

2019/11/21 12:27

iOS11であったと思います。正確なversionは失念してしまいました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問