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的位置不合适可以再做偏移设置。

顺利解决。

posted @ 2020-09-28 16:07  wjwdive  阅读(1541)  评论(0编辑  收藏  举报