Xcode8 及 iOS 10 的適配
來(lái)源:程序員人生 發(fā)布時(shí)間:2016-10-11 09:01:17 閱讀次數(shù):2987次
最近下載Xcode8 ,把項(xiàng)目適配了1下iOS10 ,把遇到的1些問(wèn)題記錄下來(lái):
1.Xcode8運(yùn)行項(xiàng)目以后,控制臺(tái)打印了1堆東西;
去除方法:選擇Xcode ->Product ->Scheme -> Edit Scheme 或按command + shift + < 快捷鍵,
在彈出的窗口中Environment Variables 下添加 0S_ACTIVITY_MODE=disable

注:真機(jī)調(diào)試不輸出NSlog了,所以我真機(jī)調(diào)試的時(shí)候,把此處對(duì)號(hào)去除,就行了
2.Xcode8 打開(kāi)工程后,出現(xiàn)下圖,蘋果新特性

我勾選了Automatically
manage signing,并且選擇配置了Team,就行了。
注:或另外1種方式 點(diǎn)擊打開(kāi)鏈接
3.用Xcode8 運(yùn)行項(xiàng)目在真機(jī)上,打開(kāi)相機(jī)相冊(cè)功能,程序崩潰;
解決辦法:項(xiàng)目中訪問(wèn)了隱私數(shù)據(jù),需要在info.plist中添加這些權(quán)限:
相機(jī)權(quán)限
<key>NSCameraUsageDescription</key>
<string>cameraDesciption</string>
相冊(cè)權(quán)限
<key>NSPhotoLibraryUsageDescription</key>
<string>photoLibraryDesciption</string>
注:
<!-- 相冊(cè) -->
<key>NSPhotoLibraryUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)相冊(cè)</string>
<!-- 相機(jī) -->
<key>NSCameraUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)相機(jī)</string>
<!-- 麥克風(fēng) -->
<key>NSMicrophoneUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)麥克風(fēng)</string>
<!-- 位置 -->
<key>NSLocationUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)位置</string>
<!-- 在使用期間訪問(wèn)位置 -->
<key>NSLocationWhenInUseUsageDescription</key>
<string>App需要您的同意,才能在使用期間訪問(wèn)位置</string>
<!-- 始終訪問(wèn)位置 -->
<key>NSLocationAlwaysUsageDescription</key>
<string>App需要您的同意,才能始終訪問(wèn)位置</string>
<!-- 日歷 -->
<key>NSCalendarsUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)日歷</string>
<!-- 提示事項(xiàng) -->
<key>NSRemindersUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)提示事項(xiàng)</string>
<!-- 運(yùn)動(dòng)與健身 -->
<key>NSMotionUsageDescription</key> <string>App需要您的同意,才能訪問(wèn)運(yùn)動(dòng)與健身</string>
<!-- 健康更新 -->
<key>NSHealthUpdateUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)健康更新 </string>
<!-- 健康分享 -->
<key>NSHealthShareUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)健康分享</string>
<!-- 藍(lán)牙 -->
<key>NSBluetoothPeripheralUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)藍(lán)牙</string>
<!-- 媒體資料庫(kù) -->
<key>NSAppleMusicUsageDescription</key>
<string>App需要您的同意,才能訪問(wèn)媒體資料庫(kù)</string>
如果沒(méi)有用,需配置1下

4.字體變大,原本的fream需要適配,智能逐1排查啦
5.Nib問(wèn)題:正告
- (void)awakeFromNib {
// Initialization code
}
需要添加:
[super awakeFromNib];
6.UIApplication對(duì)象中openUrl被廢棄
在iOS 10之前,我們要想使用利用程序去打開(kāi)1個(gè)網(wǎng)頁(yè)或進(jìn)行跳轉(zhuǎn),直接使用[[UIApplication
sharedApplication] openURL 方法就能夠了,但是在iOS 10 已被廢棄了,由于使用這類方式,處理的結(jié)果我們不能攔截到也不能獲得到,對(duì)開(kāi)發(fā)是非常不利的,在iOS 10全新的退出了 [[UIApplication sharedApplication] openURL:nil options:nil completionHandler:nil];有1個(gè)成功的回調(diào)block 可以進(jìn)行監(jiān)視。
注:依然可以用,只不過(guò)會(huì)出現(xiàn)正告
7.系統(tǒng)判斷失效
現(xiàn)在改用:#define LIOS10_OR_LATER ([[[UIDevice currentDevice]systemVersion]compare:@"10.0" options:NSNumericSearch] !=NSOrderedAscending)
8.代碼注釋不能用
解決方法:
打開(kāi)終端,命令運(yùn)行: sudo /usr/libexec/xpccachectl
然后必須重啟電腦后生效
嘿嘿,其他的等用到,在更新吧
更新:9.20 晚10:10
(同事還在加班,我剛發(fā)布完,這會(huì)兒沒(méi)事,記錄Xcode8發(fā)布App Store時(shí)遇到的蛋疼的1個(gè)問(wèn)題)
由于上述第2點(diǎn),我勾選了Automatically
manage signing,所以在提交時(shí)就不用配置證書了,但會(huì)提示在你配置Apple ID
本來(lái)依照之前的方式上傳應(yīng)當(dāng)沒(méi)啥問(wèn)題的,但是到商店里卻找不到構(gòu)建版本,(日了鬼了)。有時(shí)候連“+”都沒(méi),有的會(huì)顯示此版本無(wú)效。34次都這樣——————————————
查下資料后,說(shuō)是蘋果會(huì)有反饋郵件,因而登入了公司的企業(yè)郵箱看下,果然有::::
Dear developer,
We have discovered one or more issues with your recent delivery for "APPName". To process your delivery, the following issues must be corrected:
This app attempts 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.
Once these issues have been corrected, you can then redeliver the corrected binary.
Regards,
The App Store team
原來(lái)是在plist文件的隱私描寫寫少了,趕快添加上,這個(gè)要根據(jù)自己APP的情況來(lái)添加,描寫必須要加上,如果不添加描寫,跟沒(méi)加是1樣的,蘋果還是會(huì)謝絕。
加完以后,再次上傳就成功了。。。(好了,下班了)
生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)