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

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

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

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

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

Q&A

解決済

2回答

4225閲覧

iOSアプリ CameraUIでのクラッシュの原因

RX450

総合スコア11

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Swift

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

0グッド

1クリップ

投稿2018/03/14 08:40

編集2018/03/14 09:42

Swift4でカメラ(imagePickerController)を使用したiOSアプリです。
Fabric Crashlyticsで11.2系のみ以下のクラッシュレポートの内容のクラッシュが発生しています。
しかし、自分でクラッシュの再現ができず、原因もわからないため対処ができていません。
実機確認していますがクラッシュせずに正常に動作しています。
何かわかる方がいらっしゃいましたらご教示ください。

クラッシュレポートタイトル

CameraUI -[CAMPriorityNotificationCenter _removeObserver:fromObserversByName:]

クラッシュレポート内容

# Platform: ios # Application: AppName # Version: 1.0.22 (2) # Bundle Identifier: net.job-list # Issue #: 28 # Issue ID: 5a8273698cb3c2fa63ea80f4 # Session ID: 012c2d9d986548e1ab1b137ec55a2e8a_DNE_0_v2 # Date: 2018-03-13T11:01:00Z # OS Version: 11.2.6 (15D100) # Device: iPhone 5s # RAM Free: 13.7% # Disk Free: 7.4% #12. Crashed: com.twitter.crashlytics.ios.exception 0 AppName 0x100bee128 CLSProcessRecordAllThreads + 4306198824 1 AppName 0x100bee128 CLSProcessRecordAllThreads + 4306198824 2 AppName 0x100bedfe4 CLSProcessRecordAllThreads + 4306198500 3 AppName 0x100bddd24 CLSHandler + 4306132260 4 AppName 0x100bec130 __CLSExceptionRecord_block_invoke + 4306190640 5 libdispatch.dylib 0x181a62a14 _dispatch_client_callout + 16 6 libdispatch.dylib 0x181a6b618 _dispatch_queue_barrier_sync_invoke_and_complete + 56 7 AppName 0x100bebbc4 CLSExceptionRecord + 4306189252 8 AppName 0x100beb9ec CLSExceptionRecordNSException + 4306188780 9 AppName 0x100beb600 CLSTerminateHandler() + 4306187776 10 libc++abi.dylib 0x18131c54c std::__terminate(void (*)()) + 16 11 libc++abi.dylib 0x18131bea8 __cxxabiv1::exception_cleanup_func(_Unwind_Reason_Code, _Unwind_Exception*) + 134 12 libobjc.A.dylib 0x18132c65c _objc_exception_destructor(void*) + 362 13 CoreFoundation 0x1820e27f0 -[__NSSingleObjectEnumerator initWithObject:] + 126 14 CameraUI 0x19e1b2bc8 -[CAMPriorityNotificationCenter _removeObserver:fromObserversByName:] 15 CameraUI 0x19e1b2ef0 -[CAMPriorityNotificationCenter removeObserver:] 16 CameraUI 0x19e270eb0 -[CAMCaptureEngine dealloc] 17 libsystem_blocks.dylib 0x181b03a60 _Block_release + 160 18 libsystem_blocks.dylib 0x181b03a60 _Block_release + 160 19 libdispatch.dylib 0x181a62a14 _dispatch_client_callout + 16 20 libdispatch.dylib 0x181a6c96c _dispatch_queue_serial_drain$VARIANT$mp + 528 21 libdispatch.dylib 0x181a6d2fc _dispatch_queue_invoke$VARIANT$mp + 340 22 libdispatch.dylib 0x181a6dd20 _dispatch_root_queue_drain_deferred_wlh$VARIANT$mp + 404 23 libdispatch.dylib 0x181a7603c _dispatch_workloop_worker_thread$VARIANT$mp + 644 24 libsystem_pthread.dylib 0x181d0af1c _pthread_wqthread + 932 25 libsystem_pthread.dylib 0x181d0ab6c start_wqthread + 4 -- Fatal Exception: NSGenericException 0 CoreFoundation 0x1820e3164 __exceptionPreprocess 1 libobjc.A.dylib 0x18132c528 objc_exception_throw 2 CoreFoundation 0x1820e27f0 -[__NSSingleObjectEnumerator initWithObject:] 3 CameraUI 0x19e1b2bc8 -[CAMPriorityNotificationCenter _removeObserver:fromObserversByName:] 4 CameraUI 0x19e1b2ef0 -[CAMPriorityNotificationCenter removeObserver:] 5 CameraUI 0x19e270eb0 -[CAMCaptureEngine dealloc] 6 libsystem_blocks.dylib 0x181b03a60 _Block_release 7 libsystem_blocks.dylib 0x181b03a60 _Block_release 8 libdispatch.dylib 0x181a62a14 _dispatch_client_callout 9 libdispatch.dylib 0x181a6c96c _dispatch_queue_serial_drain$VARIANT$mp 10 libdispatch.dylib 0x181a6d2fc _dispatch_queue_invoke$VARIANT$mp 11 libdispatch.dylib 0x181a6dd20 _dispatch_root_queue_drain_deferred_wlh$VARIANT$mp 12 libdispatch.dylib 0x181a7603c _dispatch_workloop_worker_thread$VARIANT$mp 13 libsystem_pthread.dylib 0x181d0af1c _pthread_wqthread 14 libsystem_pthread.dylib 0x181d0ab6c start_wqthread #0. com.apple.main-thread 0 libobjc.A.dylib 0x18134b090 +[NSObject alloc] + 118 1 CameraUI 0x19e17d870 -[CAMViewfinderViewController _createCommonGestureRecognizersIfNecessary] 2 CameraUI 0x19e176554 -[CAMViewfinderViewController viewDidLoad] 3 UIKit 0x18b69da00 -[UIViewController loadViewIfRequired] + 1040 4 UIKit 0x18b69d5d8 -[UIViewController view] + 28 5 CameraUI 0x19e2acd4c -[CAMCameraViewController loadView] 6 CameraUI 0x19e1bac30 -[CAMImagePickerCameraViewController loadView] 7 UIKit 0x18b69d6a8 -[UIViewController loadViewIfRequired] + 184 8 UIKit 0x18b744eb8 -[UINavigationController _updateScrollViewFromViewController:toViewController:] + 76 9 UIKit 0x18b744358 -[UINavigationController _startTransition:fromViewController:toViewController:] + 196 10 UIKit 0x18b743d5c -[UINavigationController _startDeferredTransitionIfNeeded:] + 1168 11 UIKit 0x18ba29b0c -[UINavigationController _setViewControllers_7_0:transition:animated:operation:] + 3076 12 UIKit 0x18ba28b1c -[UINavigationController _setViewControllers:transition:animated:operation:] + 776 13 UIKit 0x18ba27c4c __54-[UINavigationController setViewControllers:animated:]_block_invoke + 1268 14 UIKit 0x18ba13b14 +[UIViewController _performWithoutDeferringTransitions:] + 128 15 UIKit 0x18b7bc2e8 -[UINavigationController setViewControllers:animated:] + 416 16 UIKit 0x18bc0c468 -[UIImagePickerController _handleTopViewControllerReadyForDisplay:] + 184 17 UIKit 0x18bc0c314 __79-[UIImagePickerController _setupControllersForCurrentSourceTypeWithCompletion:]_block_invoke + 112 18 UIKit 0x18bc099f8 -[UIImagePickerController _createInitialControllerWithCompletion:] + 524 19 UIKit 0x18bc0c278 -[UIImagePickerController _setupControllersForCurrentSourceTypeWithCompletion:] + 136 20 UIKit 0x18b8d2b6c -[UIImagePickerController viewWillAppear:] + 200 21 UIKit 0x18b6b64a8 -[UIViewController _setViewAppearState:isAnimating:] + 628 22 UIKit 0x18b6b621c -[UIViewController __viewWillAppear:] + 156 23 UIKit 0x18b9e98f4 __56-[UIPresentationController runTransitionForCurrentState]_block_invoke + 1152 24 UIKit 0x18b90baa8 _runAfterCACommitDeferredBlocks + 292 25 UIKit 0x18b8fee5c _cleanUpAfterCAFlushAndRunDeferredBlocks + 288 26 UIKit 0x18b690464 _afterCACommitHandler + 132 27 CoreFoundation 0x18208acdc __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32 28 CoreFoundation 0x182088694 __CFRunLoopDoObservers + 412 29 CoreFoundation 0x182088c50 __CFRunLoopRun + 1292 30 CoreFoundation 0x181fa8c58 CFRunLoopRunSpecific + 436 31 GraphicsServices 0x183e54f84 GSEventRunModal + 100 32 UIKit 0x18b7015c4 UIApplicationMain + 236 33 AppName 0x100b0fde8 main (AppDelegate.swift:15) 34 libdyld.dylib 0x181ac856c start + 4

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

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

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

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

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

newmt

2018/03/14 09:26 編集

コンソールには他に何か出力されていませんでしょうか?iOS11限定ですと権限が足りないことが考えられます。
RX450

2018/03/14 09:35

こちらのログはFabricのものです。クラッシュの再現ができていないためコンソールログは見ることができませんm(_ _)m
newmt

2018/03/14 10:06

失礼しました。再現しないとなると権限ではなさそうですね。画面遷移途中でホーム画面に戻ったり、別の画面に移動したりなどしてみても何も起きないでしょうか?
RX450

2018/03/14 10:09

「画面遷移途中でホーム画面に戻ったり、別の画面に移動したり」←こちら試してみましたがクラッシュせずに問題なく動作します。。
guest

回答2

0

自己解決

クリティカルな対策かどうかは不明ですが、
カメラ(imagePicker)の起動と終了をメインスレッドで行うようにしたら、クラッシュは発生しなくなりました。

投稿2018/03/26 03:30

RX450

総合スコア11

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

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

0

iOS11で追加され対応必須になった設定 NSPhotoLibraryAddUsageDescription は設定されていますか?

投稿2018/03/14 09:13

HiroshiWatanabe

総合スコア2160

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

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

RX450

2018/03/14 09:34

NSPhotoLibraryAddUsageDescriptionはライブラリに保存するときのみ必要なものという認識で合っていますでしょうか? 当アプリは、カメラ撮影はしますが、ライブラリへの保存は行っていません。 そのような場合でもNSPhotoLibraryAddUsageDescriptionは必要なのでしょうか?
HiroshiWatanabe

2018/03/15 00:17

保存しないなら関係なさそうですね…ちなみに NSCameraUsageDescription は設定されてるんですよね? [iOS11~]アルバムに保存 : NSPhotoLibraryAddUsageDescription [iOS10~]アルバムから読込 : NSPhotoLibraryUsageDescription [iOS10~]カメラにアクセス : NSCameraUsageDescription
RX450

2018/03/15 00:45

はい。権限まわりは設定済みで、自分で実機テストする分には正常に動作しています。 なので上記のようなクラッシュが発生している原因がわからず困っていますm(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.42%

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

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

質問する

関連した質問