NSCameraUsageDes mô tả trong sự cố thời gian chạy iOS 10.0?


154

Sử dụng iOS 10.0bản beta cuối cùng. Tôi đã thử sử dụng Camera để quét mã vạch trong ứng dụng của mình và nó bị lỗi với lỗi thời gian chạy này.

Ứng dụng này đã bị sập vì cố gắng truy cập dữ liệu nhạy cảm về quyền riêng tư mà không có mô tả sử dụng. Info.plist của ứng dụng phải chứa khóa NSCameraUsageDes mô tả với giá trị chuỗi giải thích cho người dùng cách ứng dụng sử dụng dữ liệu này.

Đặt chìa khóa này vào plist, nhưng nó vẫn bị hỏng?


6
Tôi có cùng một vấn đề, đã thêm NSCameraUsageDes mô tả trong info.plist, nhưng vẫn gặp sự cố với cùng một thông báo. Bạn đã quản lý để giải quyết nó? Rõ ràng, không ai trả lời vấn đề này hiểu rằng nó bị sập ngay cả khi bạn đã thêm khóa.
CarmenA

Nếu bạn đã thêm mục nhập vào tệp info.plist chính xác, nhưng vẫn không thành công, có thể là do Xcode đôi khi không nhận thấy các thay đổi đối với các tệp tài nguyên như info.plist, hình ảnh, âm thanh, phim, v.v. Bạn có thể cần phải thực hiện làm sạch hoặc xóa sản phẩm xây dựng ứng dụng khỏi thư mục Dữ liệu đã tạo để buộc Xcode sử dụng phiên bản mới nhất.
Người bán Walt

Câu trả lời:


227

Sau iOS 10, bạn phải xác định và cung cấp mô tả sử dụng cho tất cả dữ liệu nhạy cảm về quyền riêng tư của hệ thống được ứng dụng của bạn truy cập trong Info.plist như sau:

Lịch

Key    :  Privacy - Calendars Usage Description    
Value  :  $(PRODUCT_NAME) calendar events

Nhắc nhở:

Key    :   Privacy - Reminders Usage Description    
Value  :   $(PRODUCT_NAME) reminder use

Tiếp xúc :

Key    :   Privacy - Contacts Usage Description     
Value  :  $(PRODUCT_NAME) contact use

Ảnh :

Key    :  Privacy - Photo Library Usage Description    
Value  :  $(PRODUCT_NAME) photo use

Chia sẻ qua Bluetooth:

Key    :  Privacy - Bluetooth Peripheral Usage Description     
Value  :  $(PRODUCT_NAME) Bluetooth Peripheral use

Cái mic cờ rô :

Key    :  Privacy - Microphone Usage Description    
Value  :  $(PRODUCT_NAME) microphone use

Máy ảnh :

Key    :  Privacy - Camera Usage Description   
Value  :  $(PRODUCT_NAME) camera use

Vị trí :

Key    :  Privacy - Location Always Usage Description   
Value  :  $(PRODUCT_NAME) location use

Key    :  Privacy - Location When In Use Usage Description   
Value  :  $(PRODUCT_NAME) location use

Cây thạch thảo :

Key    :  Privacy - Health Share Usage Description   
Value  :  $(PRODUCT_NAME) heath share use

Key    :  Privacy - Health Update Usage Description   
Value  :  $(PRODUCT_NAME) heath update use

Trang chủ:

Key    :  Privacy - HomeKit Usage Description   
Value  :  $(PRODUCT_NAME) home kit use

Thư viện phương tiện:

Key    :  Privacy - Media Library Usage Description   
Value  :  $(PRODUCT_NAME) media library use

Chuyển động:

Key    :  Privacy - Motion Usage Description   
Value  :  $(PRODUCT_NAME) motion use

Nhận dạng giọng nói :

Key    :  Privacy - Speech Recognition Usage Description   
Value  :  $(PRODUCT_NAME) speech use

SiriKit:

Key    :  Privacy - Siri Usage Description  
Value  :  $(PRODUCT_NAME) siri use

Nhà cung cấp TV:

Key    :  Privacy - TV Provider Usage Description   
Value  :  $(PRODUCT_NAME) tvProvider use

Bạn có thể nhận được thông tin chi tiết trong liên kết này .


1
Privacy - Photo Library Usage Descriptionđã làm điều đó vì lỗiNSPhotoLibraryUsageDescription
Bruno Bieri

Tôi mới biết đến Apple Development và vấn đề này thật khó chịu. Vui mừng khi tôi đến nó. Chúc mừng!
dùng2529011

1
@MaylorTaylor: Vâng, bạn phải thêm nó.
Bhoopi

111

Vì Apple đã thay đổi cách bạn có thể truy cập bất kỳ loại dữ liệu riêng tư nào của người dùng iOS 10.

Bạn cần thêm Privacy - Camera usage descriptionkhóa "" vào ứng dụng của bạn Info.plistvà thông tin sử dụng của ứng dụng đó cho ứng dụng của bạn, như trong ví dụ dưới đây tôi đã cung cấp rằng tôi đã sử dụng để quét mã vạch.

Để biết thêm thông tin xin vui lòng tìm ảnh chụp màn hình dưới đây.

nhập mô tả hình ảnh ở đây


62

Bạn phải thêm khóa dưới đây trong info.plist.

NSCameraUsageDescription Hoặc là Privacy - Camera usage description

Và thêm mô tả về cách sử dụng.

Ảnh chụp màn hình chi tiết có sẵn trong liên kết này


Có vẻ như anh ấy đã thêm điều đó nhưng vẫn gặp sự cố. Đó là vấn đề tương tự mà tôi gặp phải mặc dù KVP đang ở thế nào, nó vẫn bị sập như thể không phải vậy.

43

Hoặc mở Info.plist dưới dạng mã nguồn và thêm phần này:

<key>NSCameraUsageDescription</key>
<string>Camera usage description</string>

4
trong trường hợp ai đó đang tìm cách bản địa hóa "NSCameraUsageDes mô tả", hãy thêm "NSCameraUsageDescription" = "Requires access to the camera";vào tệp infoPlist.strings được bản địa hóa của bạn
Khurram Shehzad

30

Sử dụng các giá trị thô này và sao chép trong info.plist

    <key>NSCalendarsUsageDescription</key>
      <string>$(PRODUCT_NAME) calendar events</string>
    <key>NSRemindersUsageDescription</key>
      <string>$(PRODUCT_NAME) reminder use</string>
    <key>NSCameraUsageDescription</key>
      <string>This app requires to access your photo library to show image on profile and send via chat</string>
    <key>NSMicrophoneUsageDescription</key>
      <string>This app requires to access your microphone to record video with your voice send via chat</string>
    <key>NSPhotoLibraryUsageDescription</key>
      <string>This app requires to access your photo library to show image on profile and send via chat</string>
    <key>NSContactsUsageDescription</key>
       <string>$(PRODUCT_NAME) contact use</string>
    <key>NSLocationAlwaysUsageDescription</key>
      <string>$(PRODUCT_NAME) location use</string>
    <key>NSLocationWhenInUseUsageDescription</key>
      <string>$(PRODUCT_NAME) location use</string>

từ bạn có những tên khóa thô?
Omar N Shamali

Điều đó thật tuyệt. Nó đã cứu tôi khỏi thực hiện nhiều nhấp chuột trong
xCode

26

Giao diện người dùng xcode đã thay đổi một chút từ phiên bản này sang phiên bản tiếp theo, vì vậy đây là nơi bạn cập nhật bản gốc cho 9.0 beta 4 nếu nó giúp Project -> Target -> Infonhập mô tả hình ảnh ở đây


2
Đây phải là câu trả lời được chấp nhận! Tôi đã có vấn đề này rất giống trên XCode 9.2, mặc dù đã có thêm <key>NSCameraUsageDescription</key>vào info.plist .
psantos

2
Câu trả lời chắc chắn được chấp nhận !! Tôi có hai mục tiêu trong dự án của mình và tôi đã cố gắng thêm mục tiêu này <key>NSCameraUsageDescription</key>vào tệp info.plist thứ hai , nhưng không có hiệu lực và tôi có thể xác nhận rằng XCode (10.1) chắc chắn không đưa các thay đổi đó vào tài khoản bằng cách chạy trạng thái git , bởi vì tôi info.plist cho mục tiêu khác không có bất kỳ thay đổi. Vì vậy, cách đúng đắn là đi qua Dự án-> Mục tiêu-> Thông tin . Cảm ơn người đàn ông!
bra.Scene

4

Một trường hợp khác mà tôi gặp phải trong khi cố gắng sử dụng máy ảnh, đó là nó vẫn đang bận bị hỏng _CRASHING_DUE_TO_PRIVACYngay cả sau khi thêm "Mô tả sử dụng máy ảnh". Sau khi không nhận được bất cứ thứ gì hữu hình từ ngăn xếp cuộc gọi, hãy chuyển sang "Trình tổ chức" và xem xét các báo cáo sự cố trên thiết bị. Tôi thấy rằng trên thực tế, nó đã phàn nàn về quyền riêng tư do "Mô tả sử dụng micrô" bị thiếu. Tôi đã thêm điều đó và thoát khỏi một sự cố khó hiểu như vậy.


4

Đối với những người vẫn nhận được lỗi mặc dù bạn đã thêm các khóa thích hợp vào Info.plist:

Hãy chắc chắn rằng bạn đang thêm khóa vào Info.plist chính xác. Phiên bản mới hơn của xCode, dường như có 3 Info.plist.

Một trong thư mục có tên ứng dụng của bạn đã giải quyết vấn đề cho tôi.

Thứ hai là dưới YourappnameTests và thứ ba là dưới YourappnameUITests.

Hy vọng nó giúp.


2

Nếu bạn đang sử dụng Ionic, bạn có thể giải quyết nó trực tiếp từ config.xml bằng cách thêm thẻ ios bên trong:

<platform name="ios">
.
.
.
    <config-file target="*-Info.plist" parent="NSPhotoLibraryUsageDescription">
        <string>photo library usage description</string>
    </config-file>
    <config-file target="*-Info.plist" parent="NSCameraUsageDescription">
        <string>camera usage description</string>
    </config-file>
.
.
.
</platform>

Tôi cũng muốn cảm ơn @BHUPI.


1

Bạn làm điều này bằng cách thêm khóa sử dụng vào Info.plist của ứng dụng cùng với chuỗi mục đích. NSCameraUsageDescription Chỉ định lý do để ứng dụng của bạn truy cập vào camera của thiết bị

https://developer.apple.com


1

Tôi đã kiểm tra số nguyên và thấy nó không hoạt động, chỉ trong thông tin "dự án", bạn cần thêm "Quyền riêng tư - Máy ảnh ....", sau đó nó sẽ hoạt động. Hy vọng sẽ giúp bạn.


0

Tôi đã có cùng một vấn đề và không thể tìm ra giải pháp. Mark90 là đúng có rất nhiều tập tin info.plist và bạn nên chỉnh sửa chính xác. Truy cập Project, trong TARGETS, chọn dự án (không phải kiểm tra), trong thanh tab chọn Thông tin và thêm quyền trong " Thuộc tính mục tiêu tùy chỉnh của iOS ".

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.