随着ios10的出現,我們在使用過程中發現了許多問題,有時候莫名其妙的就程式崩潰了,這時候我們的心裡就跟着崩潰了,在這裡我就來總結一下我在使用ios10中出現的問題.
1.代碼注釋不能使用的問題:
這個是因為蘋果解決xcode ghost,把插件屏蔽了。
解決方法
打開終端,指令運作: sudo /usr/libexec/xpccachectl
然後必須重新開機電腦後生效
注意:Xcode8内置了開啟注釋的功能,位置在這裡

2.權限及相關設定
麥克風權限: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 我們需要通過您的地理位置資訊擷取您周邊的相關資料
我們需要打開info.plist檔案添加相應權限的說明,否則程式在iOS10上會出現崩潰。
具體如下圖:
3.屏蔽控制台列印雜亂無章的資訊
屏蔽的方法如下:
Xcode8裡邊 Edit Scheme-> Run -> Arguments, 在Environment Variables裡邊添加
OS_ACTIVITY_MODE = Disable
4.推送 所有的推送平台,不管是極光還是什麼的,要想收到推送,這個是必須打開的.
5.隐私資料的通路
你的項目中通路了隐私資料,比如:相機,相冊,聯系人等,在Xcode8中打開編譯的話,統統會crash,
要想解決這個問題,隻需要在info.plist添加NSContactsUsageDescription的key, value自己随意填寫就可以,這裡列舉出對應的key(Source Code模式下):
<!-- 相冊 -->
<key>NSPhotoLibraryUsageDescription</key>
<string>App需要您的同意,才能通路相冊</string>
<!-- 相機 -->
<key>NSCameraUsageDescription</key>
<string>App需要您的同意,才能通路相機</string>
<!-- 麥克風 -->
<key>NSMicrophoneUsageDescription</key>
<string>App需要您的同意,才能通路麥克風</string>
<!-- 位置 -->
<key>NSLocationUsageDescription</key>
<string>App需要您的同意,才能通路位置</string>
<!-- 在使用期間通路位置 -->
<key>NSLocationWhenInUseUsageDescription</key>
<string>App需要您的同意,才能在使用期間通路位置</string>
<!-- 始終通路位置 -->
<key>NSLocationAlwaysUsageDescription</key>
<string>App需要您的同意,才能始終通路位置</string>
<!-- 月曆 -->
<key>NSCalendarsUsageDescription</key>
<string>App需要您的同意,才能通路月曆</string>
<!-- 提醒事項 -->
<key>NSRemindersUsageDescription</key>
<string>App需要您的同意,才能通路提醒事項</string>
<!-- 運動與健身 -->
<key>NSMotionUsageDescription</key> <string>App需要您的同意,才能通路運動與健身</string>
<!-- 健康更新 -->
<key>NSHealthUpdateUsageDescription</key>
<string>App需要您的同意,才能通路健康更新 </string>
<!-- 健康分享 -->
<key>NSHealthShareUsageDescription</key>
<string>App需要您的同意,才能通路健康分享</string>
<!-- 藍牙 -->
<key>NSBluetoothPeripheralUsageDescription</key>
<string>App需要您的同意,才能通路藍牙</string>
<!-- 媒體資料庫 -->
<key>NSAppleMusicUsageDescription</key>
<string>App需要您的同意,才能通路媒體資料庫</string>
如果不起作用,可以請求背景權限,類似于這樣:
<key>UIBackgroundModes</key>
<array>
<!-- 在這裡寫上你在背景模式下要使用權限對應的key -->
<string>location</string>
...
</array>
或者在Xcode裡選中目前的target,選擇Capabilities,找到Background Modes,打開它,在裡面選擇對應權限