1. 程式人生 > >iOS10中安全和隱私許可權的適配問題

iOS10中安全和隱私許可權的適配問題

在最新版本的iOS10系統中,如果你的專案中訪問了隱私資料,比如:相機、相簿、錄音、定位、聯絡人等等,在Xcode8中開啟編譯的話,統統會crash,控制檯會輸出下面這樣的日誌:


這是因為iOS對使用者的安全和隱私的增強,在申請很多私有許可權的時候都需要新增描述,但是,在使用Xcode 8之前的Xcode還是使用系統的許可權通知框。

要想解決這個問題,只需要在info.plist新增NSContactsUsageDescription的key, value自己隨意填寫就可以,這裡列舉出對應的key(Source Code模式下)。

修改示例


// 相簿
<key>NSPhotoLibraryUsageDescription</key> 
<string>是否允許App訪問您的相簿</string> 
// 相機
<key>NSCameraUsageDescription</key> 
<string>是否允許App訪問您的相機</string> 
// 位置
<key>NSLocationUsageDescription</key> 
<string>是否允許App訪問您的位置</string> 
// 始終訪問位置
<key>NSLocationAlwaysUsageDescription</key> 
<string>是否允許App通過您的地理位置資訊獲取您周邊的相關資料</string> 
// 在使用期間訪問位置
<key>NSLocationWhenInUseUsageDescription</key> 
<string>是否允許App通過您的地理位置資訊獲取您周邊的相關資料</string> 
// 藍芽
<key>NSBluetoothPeripheralUsageDescription</key> 
<string>是否允許App訪問您的藍芽</string> 
// 日曆
<key>NSCalendarsUsageDescription</key> 
<string>是否允許App訪問您的日曆</string> 
// 提醒事項
<key>NSRemindersUsageDescription</key> 
<string>是否允許App訪問您的提醒事項</string>
// 麥克風
<key>NSMicrophoneUsageDescription</key> 
<string>是否允許App訪問您的麥克風</string>
// 媒體資料庫
<key>NSAppleMusicUsageDescription</key> 
<string>是否允許App訪問您的媒體資料庫</string>
// 運動與健康
<key>NSMotionUsageDescription</key> 
<string>是否允許App訪問您的運動與健身</string>
// 健康更新
<key>NSHealthUpdateUsageDescription</key> 
<string>是否允許App訪問您的健康更新 </string> 
// 健康分享
<key>NSHealthShareUsageDescription</key> 
<string>是否允許App訪問您的健康分享</string>