iOS10中,蘋果加強了對用戶隱私數據的保護,在訪問以下數據的時候都需要在info.list重配置privacy,進行聲明,否則程序無法正常運行。
Contacts, Calendar, Reminders, Photos, Bluetooth Sharing, Microphone, Camera, Location, Health, HomeKit, Media Library, Motion, CallKit, Speech Recognition, SiriKit, TV Provider.
- 1
- 1
info.plist中的配置:
注意:
- 后面填的string會在彈出用戶允許時展示在描述里
- 這些key的名字在Xcode 8中已經有了自動補全
- 配置完記得先clear哦
下面是隱私權限以及相關設置
注意,info.plist 不加對應字段,訪問相冊,通訊錄,同時添加的時候,結尾尾不要有空格
警告:
近期有小伙伴們用Xcode 8打包上傳App,本地驗證和ipa上傳都正常。但是itunes connect后台的構建版本一直出不來,手機APP 端的 itunes connect收到push通知提示 "your app has changed to invalid binary" 同時蘋果給你的賬號發了郵件為 "This app attempts 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."
iOS 10已經要求我們添加權限申請的描述,如調取通訊錄和相冊的時候調試過程中就可以發現申請相應權限時程序會崩潰。加上權限描述,但如果描述字符串為空時,調試正常,但卻會引發上面的包無效的問題。“所有還是需要一個具體的描述信息”。
溫馨提示: 各位開發的小伙伴可以安裝一個手機端的iTunes connect,方便及時收到相關的審核進度,同時在郵箱中設置好開發的郵箱,及時收到蘋果對於開發者發送的郵件
我們需要打開info.plist文件添加相應權限的說明,否則程序在iOS10上會出現崩潰。你的項目中訪問了隱私數據,比如:相機,相冊,聯系人等,在Xcode8中打開編譯的話,統統會crash,控制台會輸出下面這樣的日志:
具體如下圖
- log 打印錯誤提示
022.png
- 權限配置 info.plist 文件
02.png
- 麥克風權限:Privacy - Microphone Usage Description 是否允許此App使用你的麥克風?
- 相機權限: Privacy - Camera Usage Description 是否允許此App使用你的相機?
- 相冊權限: Privacy - Photo Library Usage Description 是否允許此App訪問你的媒體資料庫?通訊錄權限: Privacy - Contacts Usage Description 是否允許此App訪問你的通訊錄?
- 藍牙權限:Privacy - Bluetooth Peripheral Usage Description 是否許允此App使用藍牙?
- 語音轉文字權限:Privacy - Speech Recognition Usage Description 是否允許此App使用語音識別?
- 日歷權限:Privacy - Calendars Usage Description 是否允許此App使用日歷?
- 定位權限:Privacy - Location When In Use Usage Description 我們需要通過您的地理位置信息獲取您周邊的相關數據
- 定位權限: Privacy - Location Always Usage Description 我們需要通過您的地理位置信息獲取您周邊的相關數據
定位的需要這么寫,防止上架被拒。
在Xcode里選中當前的target,選擇Capabilities,找到Background Modes,打開它,在里面選擇對應權限