iOS13適配總結

1. 系統設置中深色模式下,view的背景色默認爲深黑色,影響整個APP,能夠修改回默認白色ios

(1)APP統一修改,在info.plist中強制白色模式git

<key>UIUserInterfaceStyle</key>
 <string>Light</string>
複製代碼

(2)單個view及其子view強制修改默認模式,解除系統深色模式影響github

view.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;複製代碼

(3)修改window的默認模式,對整個APP有效,官方不推薦使用,推薦修改info.plistbash

[UIApplication sharedApplication].keyWindow.overrideUserInterfaceStyle = UIUserInterfaceStyleLight;複製代碼

2.DeviceToken獲取方式改變,如下方式兼容全部系統微信

#include <arpa/inet.h>
-(void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
    if(![deviceToken isKindOfClass:[NSData class]])return;
    const unsigned *tokenBytes =(const unsigned *)[deviceToken bytes];
    NSString *hexToken =[NSString stringWithFormat:@"%08x%08x%08x%08x%08x%08x%08x%08x",
                          ntohl(tokenBytes[0]),ntohl(tokenBytes[1]),ntohl(tokenBytes[2]),
                          ntohl(tokenBytes[3]),ntohl(tokenBytes[4]),ntohl(tokenBytes[5]),
                          ntohl(tokenBytes[6]),ntohl(tokenBytes[7])];
    NSLog(@"deviceToken:%@",hexToken);
}
複製代碼

3.KVC 限制,用kvc修改私有屬性會崩潰app

崩潰寫法:ide

[_textField setValue:self.placeholderColor forKeyPath:@"_placeholderLabel.textColor"];複製代碼

修改寫法:ui

_textField.attributedPlaceholder =[[NSMutableAttributedString alloc]initWithString:placeholder attributes:@{NSForegroundColorAttributeName : self.placeholderColor}];複製代碼

4.控制器模態跳轉默認效果改變,新版默認跳轉至新VC不全屏。spa

修改成全屏效果,跳轉前修改新VC的modalPresentationStylecode

if(@available(iOS 13.0,*)){
        newVC.modalPresentationStyle = UIModalPresentationFullScreen;
    }
    [oldVC presentViewController:newVC animated:YES completion:nil];
複製代碼

5.新浪微博SDK崩潰問題

微博SDK3.2.5版本, 已解決崩潰問題,但沒有同步到cocoapods,致使cocoapods上最新版及友盟SDK中 有崩潰問題

解決方法: 手動在GitHub下載最新微博SDK,替換項目中的同名文件便可

github.com/sinaweibosd…

6.友盟更新,適配iOS13

info.umeng.com/detail?id=1…

UMCCommon須要升級到2.1.1最新版本

UMCShare須要升級到6.9.6最新版本

pod 'UMCCommon','~> 2.1.1'

pod 'UMCShare/UI','~> 6.9.6'

pod 'UMCShare/Social/WeChat','~> 6.9.6'

pod 'UMCShare/Social/QQ','~> 6.9.6'

pod 'UMCShare/Social/Sina','~> 6.9.6'

7.個推SDK須要升級到最新版2.4.1.0

pod 'GTSDK','2.4.1.0'

8.CYLTabBarController須要升級到最新版本

控制器跳轉會引起TabBarController顯示異常

pod 'CYLTabBarController','~> 1.28.3'

9. UIWebView廢棄,適用範圍ios(2.0,12.0),機率性被審覈打回

微博SDK3.2.5版本已更新至WKWebview

10.MPMoviePlayerController在iOS13廢棄

11. CNCopyCurrentNetworkInfo

developer.apple.com/documentati…

12.UISegmentedControl 默認樣式改變

默認樣式變爲白底黑字

13.APPID登陸,使用三方登陸的APP要加APPID登陸

審覈指南4.8使用Apple登陸, 必須在2020年4月以前加入
developer.apple.com/app-store/r…

專門使用第三方或社交登陸服務的應用程序(如Facebook登陸,Google登陸,使用Twitter登陸,使用LinkedIn登陸,使用亞馬遜登陸或微信登陸)來設置或驗證用戶的主賬戶使用該應用程序還必須提供與Apple等同的登陸選項。

用戶的主要賬戶是他們與您的應用程序創建的賬戶,用於識別本身,登陸和訪問您的功能和相關服務。

若是符合如下條件,則無需使用Apple登陸:

  • 您的應用專門使用您公司本身的賬戶設置和登陸系統。
  • 您的應用是教育,企業或商業應用,須要用戶使用現有的教育或企業賬戶登陸。
  • 您的應用使用政府或行業支持的公民身份識別系統或電子ID來驗證用戶身份。
  • 您的應用是特定第三方服務的客戶,用戶須要直接登陸其郵件,社交媒體或其餘第三方賬戶才能訪問其內容。

14.即將廢棄的 LaunchImage

從 iOS 8 的時候,蘋果就引入了 LaunchScreen,咱們能夠設置 LaunchScreen來做爲啓動頁。固然,如今你還可使用LaunchImage來設置啓動圖。不過使用LaunchImage的話,要求咱們必須提供各類屏幕尺寸的啓動圖,來適配各類設備,隨着蘋果設備尺寸愈來愈多,這種方式顯然不夠 Flexible。而使用 LaunchScreen的話,狀況會變的很簡單, LaunchScreen是支持AutoLayout+SizeClass的,因此適配各類屏幕都不在話下。 從2020年4月開始,全部使⽤ iOS13 SDK 的 App 將必須提供 LaunchScreen,LaunchImage即將退出歷史舞臺

相關文章
相關標籤/搜索