8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Mac OS MojaveでOpenCVでのカメラ使用時に出るエラーの対処メモ

Last updated at Posted at 2019-04-15

OpenCVのサンプルプログラムで、カメラを開くプログラムを実行したらエラーがでたという話。
どうやらMac OS Mojaveからは、カメラなどを使用するのに一つ手間を加えないといけないらしい...

#動作環境
Mac OS Mojave 10.14.3
Xcode 10.2
OpenCV 4.0.1

#対処法
エラー内容は以下の通り

This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSCameraUsageDescription key with a string value explaining to the user how the app uses this data.

info.plistにNSCameraUsageDescriptionを追加して、利用目的を書かないといけないらしいです。
どうやらこの問題はちょっと前からあったらしく、サイトをいくつか参照しましたが
info.plistがあるであろう場所にありませんでした。

なので作ります。

info.plistの作成 (既にある人は次項へ)

File→New→FileでProperty Listを選択、info.plistと名前をつける。
スクリーンショット 2019-04-15 14.01.07.png

左の項目のinfo.plistを選択して、Rootを右クリック

Property List Typeからinfo.plistを選択

これでinfo.plistが作成できました

カメラを使えるようにする

information Property Listの横の+ボタンを押し、Privacy - Camera Usage Descriptionを選択
(NSCameraUsageDescriptionに書き換わるかも)

選択したkeyのValueを埋める
(利用目的を書くらしいが、審査に通したりしないなら何か適当に書いておけば大丈夫です)

info.plistの内容を保存
スクリーンショット 2019-04-15 14.02.29.png

projectの一番上のファイル名を選択、Generalタブに移動

一番上にボタンが出ているので押す(Choose info.plist File...と書かれたボタン)
スクリーンショット 2019-04-15 14.02.45.png
スクリーンショット 2019-04-15 14.03.05.png

Build Phasesタブに移動

Copy Filesを開き、以下の操作を実行
 ・Destination を Products Directory に変更
 ・Subpathを削除
 ・Copy only when installing のチェックボックスを外す
 ・下の+をおし、info.plistを選択しAddボタンを押す
スクリーンショット 2019-04-15 14.03.26.png
これを
スクリーンショット 2019-04-15 14.03.55.png
こう

自分はこれでできました。

プログラムを動かしたらポップアップが出るので、
OK押したらカメラが開きます。
スクリーンショット 2019-04-15 14.07.18.png

メモ終わり。

8
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?