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 @   wjwdive  阅读(1554)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
历史上的今天:
2016-09-28 MAC 环境 ionic build android 命令在"Downloading http://services.gradle.org/distributions/gradle-2.13-all.zip"卡住问题
2016-09-28 MAC环境下 nodejs 4.5.0 卸载
点击右上角即可分享
微信分享提示