更新了Xcode8 以及 iOS10,App訪問用戶的相機、相冊、麥克風、通訊錄的權限都需要重新進行相關的配置,不然在Xcode8中打開編譯的話會直接crash。
需要在info.plist中添加App需要的一些設備權限。
相機NSCameraUsageDescription
相冊NSPhotoLibraryUsageDescription
通訊錄NSContactsUsageDescription
始終訪問位置NSLocationAlwaysUsageDescription
位置NSLocationUsageDescription
在使用期間訪問位置NSLocationWhenInUseUsageDescription
麥克風NSMicrophoneUsageDescription
訪問藍牙NSBluetoothPeripheralUsageDescription
訪問日歷NSCalendarsUsageDescription
訪問媒體資料庫NSAppleMusicUsageDescription
訪問健康分享NSHealthShareUsageDescription
訪問健康更新NSHealthUpdateUsageDescription
訪問運動與健身NSMotionUsageDescription
訪問提醒事項NSRemindersUsageDescription
提別提醒: 從2017年1月1日起,強制使用https,所有新提交的 app 默認不允許使用NSAllowsArbitraryLoads來繞過ATS的限制 安全傳輸不再支持SSLv3, 建議盡快停用SHA1和3DES算法.
下面貼出來錯誤:
Q1: iOS10相冊相機閃退問題:
iOS10系統下調用系統相冊、相機功能,遇到閃退的情況,日志描述如下:
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.
解決方法:在info.plist文件下添加
相機權限 <key>NSCameraUsageDescription<key>
<string>cameraDesciption<string>
相冊權限 <key>NSPhotoLibraryUsageDescription<key>
<string>photoLibraryDesciption<string>
Q2: iOS 10 因蘋果健康導致閃退
如果在app中調用了蘋果健康,iOS10中會出現閃退。控制台報出的原因是:Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'NSHealthUpdateUsageDescription must be set in the app's Info.plist in order to request write authorization.'
這是因為我們要在info.plist文件中聲明蘋果健康的使用權限,所以在info.plist中添加以下key就可以:
請求寫入<key>NSHealthUpdateUsageDescription<key>
<string>some string value stating the reason<string>
請求讀取<key>NSHealthShareUsageDescription<key>
<string>some string value stating the reasonPaste_Image.png<string>
Q3: Xcode 打印的那些雜亂無章的bug
更新Xcode8之後,新建立工程,都會打印一堆莫名其妙看不懂的Log.比如如這些
subsystem: com.apple.UIKit, category: HIDEventFiltered, enable_level:0, persist_level:0, default_ttl:0, info_ttl:0, debug_ttl:0, generate_symptoms:0, enable_oversize:1,
屏蔽的方法如下:
Xcode8裡邊 Edit Scheme->Run-> Arguments, 在Environment Variables裡邊添加
OS_ACTIVITY_MODE = Disable 就行,截圖如下:(真的沒有iPhone4了)
弄完之後就可以像之前那樣 正常打印了.
以上所述是小編給大家介紹的更新了Xcode8 及 iOS10遇到的問題小結,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對本站網站的支持!