iOS 10和Xcode8踩坑記錄

權限崩潰問題

控制臺日志:This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSContactsUsageDescription key with a string value explaining to the user how the app uses this data.

意思是說:你需要在info.plist文件 添加一個“NSContactsUsageDescription ”的Key,Value添加一個描述。

1,在項目中找到info.plist文件,右擊有個 Open As,以Source Code 的形式打開

2,分別復制 以下 Value 和Key,Key 一定不能錯,Value 可以隨便填寫

相機權限描述:

<key>NSCameraUsageDescription</key>
<string>cameraDesciption</string>

通信錄:

<key>NSContactsUsageDescription</key>
<string>contactsDesciption</string>

麥克風:

<key>NSMicrophoneUsageDescription</key>
<string>microphoneDesciption</string>

相冊:

<key>NSPhotoLibraryUsageDescription</key>
<string>photoLibraryDesciption</string>

eg:其他權限描述,debug 控制臺都會有輸出的,自行添加就OK

xib和storyboard布局顯示問題

使用Xcode8偶然打開了項目中的storyboard文件,然后跑起項目,卻發現界面全亂了。或者說界面無法顯示等問題。
經過一番探究后,發現Xcode8對xib和storyboard做出了一些修改,在awakeFromNib和viewDidLoad方法中拿自己拖上去的控件的frame均變成了(0, 0, 1000, 1000),若直接在此使用控件frame進行二次修改,如:修改A控件的寬為B控件的一半,則B控件實際當前的寬是1000,就會造成混亂,或者界面無法顯示等。解決辦法是在使用原控件frame之前調一次layoutIfNeeded方法。

最簡單的方法就是在viewDidLoad方法中加入[self.view layoutIfNeeded]。

- (void)viewDidLoad {
    [super viewDidLoad];
    [self.view layoutIfNeeded];    // 調用此方法
    
}

控制臺輸出不相關信息

解決方法:EditScheme -> 左側Run -> 右側Arguments -> 下方Environment Variables -> 添加 OS_ACTIVITY_MODE = disable

http://devhy.com/2016/09/13/13-ios10-and-xcode8-adapt/

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 手機升級了 iOS10 Beta,然后用正在開發的項目 裝了個ipa包,發現點擊有關 權限訪問 直接Crash了,...
    John_LS閱讀 24,075評論 13 43
  • 今天 手機升級了 iOS10 Beta,然后用正在開發的項目 裝了個ipa包,發現點擊有關 權限訪問 直接Cras...
    TomatosX閱讀 314評論 0 1
  • iOS10上,若你的項目訪問了隱私數據,比如:相機,相冊,通訊錄等,app會直接Crash了,這是因為iOS10對...
    AyinLee閱讀 803評論 0 3
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,991評論 19 139
  • 一直很喜歡汪老,讀他文字總是輕松的、愜意的。正如文如其人,汪老在生活中肯定也是個溫暖、開朗、豁達,甚至有點閑適無為...
    山竹怪獸閱讀 2,295評論 4 5