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的位置不合适可以再做偏移设置。
顺利解决。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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 卸载