使用Xcode8寫自己的東西有一段時間了,在使用Xcode8編程時不得不說我特別喜歡改后的默認字體,哈哈,當然默認字體是可以調回去的,只不過默認的字體感覺看起來比以前舒服了,畢竟不會像之前那么”字正腔圓”了。
步入正題吧,不然慢慢的就會成為話嘮了。凡事總會有個導火線吧,想記錄權限問題的起因:
今天在繼續優化之前寫的圖片多選小demo的時候無意用Xcode8 Beta3打開了(用過的小伙伴應該知道,點擊項目文件的話默認就是用Xcode8來打開的吧),在調用發生了崩潰現象,一開始以為是巧合,但嘗試了第二次之后,似乎意識到確實出了問題,從而關注控制台(為什么之前沒有看,是因為Beta版不管有沒有出現錯誤都會打印一堆的東西,索性就不看了),這個時候就注意到了這句Xcode給我們的忠告:
[access] This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data.
- 1
- 2
- 3
不難翻譯,大體意思就是這個App缺少一個獲取私有(敏感)數據的權限描述,需要我們在info.plist文件中必須含有一個名字叫做NSPhotoLibraryUsageDescription的值來解釋為什么應用需要使用這個數據,沒錯,獲取相冊資源的鍵值就是NSPhotoLibraryUsageDescription
感覺它”友好”的提示之后,就去plist文件中添加了下面的鍵值:
這個時候再點擊獲取圖片資源,就彈出了一個獲取權限的問候,不會發生崩潰了:

通過類似事情,說明iOS10對用戶的隱私又做了進一步加強,就好像當初iOS8對定位隱私進行加強一樣,作為開發者的我們貌似也是應該時刻保持這種對新知識警覺性的。
除了相冊的權限,iOS10之后如下的權限請求也是需要我們填寫請求描述的,在這里也給大家提醒一下:
Privacy - Microphone Usage Description //麥克風權限 Privacy - Contacts Usage Description //通訊錄權限 Privacy - Camera Usage Description //攝像頭權限
最后和大家一起期盼iOS10的正式發布3Q