iOS 14首個坑


背景:
生產上爆出一個問題,iOS14用戶某個跳轉按鈕沒有反應。其他系統用戶沒有這個問題。

蘋果在9月17號正式推送了iOS14.
2020,9月17號我們的APP升級OK 。用戶未沒有抱怨出問題。
在23號的時候,還未爆出問題。24號,已經有人反饋了。
我還沒有升級MAC系統,也沒有Xcode12的測試包,也沒有iOS14的測試機。
一切又要從裝系統,裝Xcode開始。Xcode Version 12.2 beta (12B5018i)裝下來整整28.6G,我的學習資料都沒得空間了。XCode11 才 16.2G。
我想說:“#&……#”希望正式版會壓縮體積。

1、整好之后在看頁面的層次結構時模擬器先報錯了:
運行模擬器報"Remote object proxy returned error: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service named com.apple.commcenter.coretelephony.xpc was invalidated." UserInfo={NSDebugDescription=The connection to service named com.apple.commcenter.coretelephony.xpc was invalidated"

解決方案:
在終端運行 xcrun simctl spawn booted log config --mode "level:off" --subsystem com.apple.CoreTelephony

2、開始解決按鈕無效的問題。打印日志:確定跳轉前后的問題

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    NSLog(@"viewWillAppear");
}

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    NSLog(@"viewDidAppear");
}

控制台只打印了:

viewWillAppear

看來按鈕是生效了,肯定是B控制器的viewDidLoad出了問題。
由於線上大部分機型和系統沒有問題,只有一行行排除。
不停的調試之后。
定位到是純代碼布局:

 [self.inputView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.mas_equalTo(oneThirdScreenWidth - 15);
        make.height.mas_equalTo(25);
        make.width.mas_equalTo(2 * oneThirdScreenWidth - 45);
//        make.centerY.baseline.equalTo(self);
        make.centerY.equalTo(self);
    }];

被注釋掉的代碼出了問題,看來iOS14蘋果對自動布局又做了【優化】,centerY和baseline不能同時設置約束,Masonry也沒有爆約束沖突的斷言。iOS14之前,也沒有錯誤。
最后想想而且之前這樣做也像是多余的約束,實際上這兩個約束用一個就好,里面的textFiled的位置不合適可以再做偏移設置。

順利解決。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM