一、Xcode12運(yùn)行失敗
升級(jí)Xcode 12 后項(xiàng)目運(yùn)行不起來(lái)回懦,報(bào)錯(cuò):
library not found for -lxxxxx
以上問(wèn)題的原因在Xcode11中 x86_64的機(jī)型支持是默認(rèn)支持的咙咽,但Xcode12的時(shí)候 蘋(píng)果推出了arm主機(jī)的Mac关面, 這使得arm主機(jī)的Xcode其實(shí)就不需要x86_64的默認(rèn)支持了演怎。 x86_64不默認(rèn)添加,需要手動(dòng)添加上才能在Mac上運(yùn)行模擬器捅厂。
解決方案:
以上報(bào)錯(cuò)信息Xcode 12以前贯卦,我們通過(guò)Valid Architectures 來(lái)配置支持的機(jī)型。
但在Xcode12中焙贷, Valid Architectures 這一項(xiàng)被移除掉了,改變成了 VALID_ARCHS的欄目撵割。
我們需要在 Build Settings --> VALID_ARCHS中 添加上 x86_64
二、ios14適配
1. KVC
iOS14不允許以KVC形式訪問(wèn) UIPageControl的pageImage辙芍、_currentPageImage
在iOS14下設(shè)置UIPageControl的pageimage啡彬,會(huì)導(dǎo)致奔潰羹与,不能再用了。
if (@available(iOS 14.0,*)) {
pageControl.preferredIndicatorImage = [self imageWithColor:[UIColor whiteColor]];
pageControl.currentPageIndicatorTintColor = [UIColor redColor];
pageControl.pageIndicatorTintColor = [UIColor blueColor];
}else{
[pageControl setValue:[UIImage imageNamed:@"pageControllDot"]forKeyPath:@"pageImage"];
[pageControl setValue:[UIImage imageNamed:@"pageControllCurrent"]forKeyPath:@"currentPageImage"];
}
2. UIDatePicker
xcode12 UIDatePicker 需要加入 preferredDatePickerStyle
庶灿,并且DatePickerMode
必須在UIDatePicker
的frame
賦值前賦值
3. tableViewCell
xcode12上cell添加button纵搁,不能[self addSubview:self.cellBtn]
需要[self.contentView addSubview:self.cellBtn]
,contentView
的層級(jí)被提上來(lái)了往踢,self addSubview
會(huì)導(dǎo)致button
不響應(yīng)點(diǎn)擊事件.也可以在添加控件之前提前調(diào)用contentView
4. 復(fù)制粘貼板
[UIPasteboard generalPasteboard]
發(fā)生變更.
獲取粘貼板需要控制下.包括第三方SDK,防止每次打開(kāi)APP,都會(huì)提示粘貼信息.
5.相冊(cè)權(quán)限
iOS14 新增了Limited Photo Library Access
模式腾誉,在授權(quán)彈窗中增加了 Select Photo
選項(xiàng)。用戶(hù)可以在 App 請(qǐng)求調(diào)用相冊(cè)時(shí)選擇部分照片讓 App 讀取峻呕。從 App 的視?來(lái)看利职,你的相冊(cè)里就只有這幾張照片,App 無(wú)法得知其它照片的存在瘦癌。
PHAuthorizationStatusLimited
時(shí)猪贪,如果未進(jìn)行適配,有可能會(huì)在每次觸發(fā)相冊(cè)功能時(shí)都進(jìn)行彈窗詢(xún)問(wèn)用戶(hù)是否需要修改照片權(quán)限佩憾。
對(duì)于這種情況可通過(guò)在 Info.plist 中設(shè)置PHPhotoLibraryPreventAutomaticLimitedAccessAlert
的值為YES來(lái)阻止該彈窗反復(fù)彈出,并且可通過(guò)下面這個(gè) API 來(lái)主動(dòng)控制何時(shí)彈出PHPickerViewController
進(jìn)行照片選擇干花。
具體可以參考文章iOS14 隱私適配及部分解決方案
6. 地理位置權(quán)限
新增了 精確定位
和 模糊定位
的概念妄帘,用戶(hù)可以手動(dòng)選擇,模糊定位的誤差約 500m 池凄。
可以根據(jù)實(shí)際功能判斷是否可以接受用戶(hù)選擇模糊定位抡驼。
如果功能強(qiáng)依賴(lài)精確定位,可以在需要的時(shí)候調(diào)用[CALocationMnanger requestTemporaryFullAccuracyAuthorizationWithPurposeKey:]
單獨(dú)請(qǐng)求一次精確定位肿仑,用戶(hù)可以選擇拒絕授權(quán)致盟。
所需參數(shù) purposeKey
需要在 info.plist
中設(shè)置 NSLocationTemporaryUsageDescriptionDictionary
字典,key
為 purposeKey
尤慰, value
為對(duì)應(yīng)的話(huà)述馏锡。
7. 畫(huà)中畫(huà)
iOS14送使用AVplayer進(jìn)行播放視頻的,都可以支持畫(huà)中畫(huà)功能,其實(shí)就是一個(gè)視頻懸浮窗.我的項(xiàng)目中沒(méi)有涉及到,所以大家具體可以參考文章iOS14畫(huà)中畫(huà)功能實(shí)現(xiàn)
8. 廣告標(biāo)識(shí)IDFA權(quán)限
iOS14以上系統(tǒng),需要先請(qǐng)求跟蹤權(quán)限伟端,用戶(hù)同意后才能獲取到廣告標(biāo)識(shí)杯道。
在info.plist文件里添加跟蹤權(quán)限請(qǐng)求描述文字.
9. 第三方庫(kù)的崩潰:
YYWebImage中 iOS14 YYAnimatedImageView 加載不出圖片
JXCategoryView的崩潰問(wèn)題
TZImagePickerController需要升級(jí)到最新版本
其他第三方.....
10. 新增iPhone12尺寸
//iPhone12Mini
#define Iphone12Mini ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1080, 2340), [[UIScreen mainScreen] currentMode].size) : NO)
//iPhone12
#define Iphone12 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1170, 2532), [[UIScreen mainScreen] currentMode].size) : NO)
//iPhone12ProMax
#define Iphone12ProMax ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(1284, 2778), [[UIScreen mainScreen] currentMode].size) : NO)