58

ビルドが拒否されました アプリには、アプリがこのデータをどのように使用するかをユーザーに説明する文字列値を持つキーがInfo.plist含まれている必要があります。NSMicrophoneUsageDescription

アプリはマイクを使用しません。とか、そう思います。

マイクが使用されている場所を追跡するにはどうすればよいですか?

UPD23112016: 怠惰な回答が賛成票を投じられているため、このセキュリティ ホールを閉じるために Apple に新しい機能のリクエストを提出しました。

UPD05042017: 未完成の NSMicrophoneUsageDescription を介してサード パーティのフレームワークにマイク アクセスをプロキシすると、ユーザーがマイク アクセスを許可することに同意した場合に、いつどこで使用できるかをまったく制御できなくなるのは厄介です。皆さん、デューデリジェンスを行い、サードパーティのバイナリのみのフレームワークによって使用法が隠されている場合に、完全に制御できないコードによってマイクが使用されているという事実を反映した正確な NSMicrophoneUsageDescription を作成してください。ありがとう。

UPD2021: Apple は、最新の iOS での共有リソース (マイクなど) の使用状況の監査証跡で可能なことを行ったため、ユーザーは実際のアクセスが発生したときに何らかの頼りになるチェックを行うことができます。いい試みですが、デューデリジェンスを行う人はどれくらいいますか?

4

7 に答える 7

79

怠け者のために:

ほとんどのメディア アクセス (デバイス上の写真、カメラ、ビデオ録画、場所) の usageDescriptions をすばやく追加する場合:

info.plist ファイルを右クリックし、-> open as -> Source Code

次に、現在の値の間に次を貼り付けます。

<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for uploading videos</string>
<key>NSCameraUsageDescription</key>
<string>Need camera access for uploading images</string>
<key>NSLocationUsageDescription</key>
<string>Need location access for updating nearby friends</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app will use your location to show cool stuffs near you.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Need photo library access for uploading images</string>

もちろん、これらの説明はあなた次第です。できるだけ一般的なものにしようとしました。

これが誰かの時間を節約することを願っています!

于 2016-10-31T17:46:46.260 に答える
45

キーと値を追加するだけNSMicrophoneUsageDescriptionで、アプリがマイクを使用している理由を正当化できます。これは、iOS 10 の最新の要件です。

于 2016-09-20T09:21:05.650 に答える
19

そして犯人は (ドラム) : Instabug フレームワークでした。彼らは、マーケットウェアのページで、ユーザーがフィードバックの作成中に音声メモを取ることができると言っています。だから私はそれをNSMicrophoneUsageDescription説明するアプリの plist に追加しました。

instabug が使用する多くの Apple API があることに注意してください

アーキテクチャ arm64 の未定義シンボル: (そのフレームワークが主張していることに従って正当と思われるものをいくつか削除し、マーケットウェアで主張していないものを残しました)

「_AVMakeRectWithAspectRatioInsideRect」、次から参照: +[IBGIAMImageAttachmentView sizeForContent:forWidth:] InstabugHost_lto.o

OBJC_CLASS $_CTTelephonyNetworkInfo」、参照先: InstabugHost_lto.o の objc-class-ref

InstabugHost_lto.o の -[IBGVoiceNoteManager startRecording] から参照される「_AVNumberOfChannelsKey」

「_CTRadioAccessTechnologyHSDPA」、次から参照: +InstabugHost_lto.o の [IBGInspector getCarrier]

「_CTRadioAccessTechnologyGPRS」、次から参照: +InstabugHost_lto.o の [IBGInspector getCarrier]

「_CTRadioAccessTechnologyWCDMA」、次から参照: +InstabugHost_lto.o の [IBGInspector getCarrier]

「_CTRadioAccessTechnologyEdge」、次から参照: + InstabugHost_lto.o の [IBGInspector getCarrier]

「_CTRadioAccessTechnologyCDMA1x」、次から参照: +InstabugHost_lto.o の [IBGInspector getCarrier]

「_CTRadioAccessTechnologyCDMAEVDORevA」、次から参照: +InstabugHost_lto.o の [IBGInspector getCarrier]

「_CTRadioAccessTechnologyCDMAEVDORevB」、次から参照: +InstabugHost_lto.o の [IBGInspector getCarrier]

「_CTRadioAccessTechnologyLTE」、次から参照: + InstabugHost_lto.o の [IBGInspector getCarrier]

OBJC_CLASS $_AVURLAsset」、参照先: InstabugHost_lto.oの OBJC_CLASS $_IBGAsset

OBJC_METACLASS $_AVURLAsset」、参照先: InstabugHost_lto.oの OBJC_METACLASS $_IBGAsset

「_CTRadioAccessTechnologyCDMAEVDORev0」、次から参照: +InstabugHost_lto.o の [IBGInspector getCarrier]

「_CTRadioAccessTechnologyHSUPA」、次から参照: +InstabugHost_lto.o の [IBGInspector getCarrier]

ld: アーキテクチャ arm64 のシンボルが見つかりません

したがって、このスノーデン後の世界では、たとえばコアテレフォニーがなぜ必要なのか疑問に思う必要があります。

つまり、サードパーティのフレームワークのソースがない場合は、アプリ自体がマイクやカメラを使用していないことをユーザーに開示して、ユーザーがアクセスを拒否できるようにする必要があります。そのデバイス。

アプリを介して悪用されるセキュリティ上の欠陥のために、いつかニュースになりたくありません。

未解決: 慎重に作成されたマイクの使用方法の説明では、セキュリティの問題を完全に解決することはできませんが、アプリがマイクを使用し、サードパーティのフレームワーク (それが必要であると思われます) もマイクを必要とする場合に備えて. リスクの概要を説明する長い説明を作成する必要があります。

ここで、クレジットの開示が便利になり、ユーザーがどのサードパーティコードに依存しているかを知ることができます. 当然のことながらクレジットを与えてください:^)

あなたが私のように怠け者で、ios セキュリティ ホワイトペーパーを読んだことがない場合は、ここに短いhttps://developer.apple.com/videos/play/wwdc2016/705/があります

ビデオ全体を視聴したくない場合: 19:00 頃のマークで、スピーカーは、これらの説明を怠ってはならないことを明確に伝えます (ユーザーが許可したパーミッションを悪用する可能性のあるサードパーティのコードについては、あなたが責任を負います)。あなたのアプリは、バイナリ フレームワークを愛さなければなりません ;^)

于 2016-09-20T09:21:30.787 に答える
0

これは、私の他の膨大な回答を補完するためのさらに別の回答を正当化すると思います(とにかく人々は怠惰すぎて読むことができず、開発者はこれまでのところほとんどの人です)

Apple は、マイクへのアクセスを要求するサードパーティのバイナリのみのフレームワークのセキュリティ ホールに対処し、(とりわけ) ios15 でのマイクの使用に監査証跡を追加しました。アプリのプライバシー レポートは、設定で呼び出されます。したがって、その証跡を監査する責任の一部は、サードパーティのジャンクウェアが埋め込まれたアプリのユーザーに移されます。アーメン。

于 2021-06-09T15:00:49.490 に答える