xcode更新带来了新特性,也带来了新的坑.目前遇到了一些,做一下总结.
1.error: Multiple commands produce ·········/Info.plist':
升级后编译项目第一个遇到到的就是这个,如果直接按照提示去文件夹删除并没有作用
解决办法:Build phase > 直接搜索plist相关的删除即可
或者File->WorkSpace Settings->Build System 改为Legacy Build System即可
2.因为我们用到百度地图并且手动导入的,导致libstdc++.6.0.9.tbd废弃,换用libc++.tbd即可
3.导航栏底部黑线无法找到了
之前都是这样找到黑线然后修改颜色或者隐藏,
- (UIImageView *)findHairlineImageViewUnder:(UIView *)view {
if ([view isKindOfClass:UIImageView.class] && view.bounds.size.height <= 1.0) {
return (UIImageView *)view;
}
for (UIView *subview in view.subviews) {
UIImageView *imageView = [self findHairlineImageViewUnder:subview];
if (imageView) {
return imageView;
}
}
return nil;
}
到iOS12发现黑线又显现了,通过视图发现黑线还是在navigationBar上但是它的subviews已经为0了,原因:由于是在viewDidLoad里面调用的.在iOS12上布局应该发生了变化,于是我在viewDidLayoutSubviews调用上述方法发现可以改变那条黑线.
也可以改用
[self.navigationBar setShadowImage:[UIImage colorToImageWithColor:[UIColor whiteColor]]];
4.打包出现Failed to verify bitcode in xxxx.framework
个人用的是公司的SDK导致了这个问题,可以用File->WorkSpace Settings->Build System 改为Legacy Build System的方式.
后来又重新将framework的bitcode改为NO然后重新打包,又把Build System改回原来的Default模式,打包又可以了.
5.启动页适配:增加两张启动页即可
iPhone XR:828px x 1792px
iPhone XS Max: 1242px x 2688px
iOS12.1导致tabbar跳动
个人将
self.extendedLayoutIncludesOpaqueBars 设置为NO解决了该问题.当然默认也是NO
也可参考QMUI_iOS解决方案
6.使用HKHealthStore问题
获取授权时,程序闪退,并提示*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'NSHealthShareUsageDescription must be set in the app's Info.plist in order to request read authorization for the following types: HKQuantityTypeIdentifierStepCount'
将info.plist中权限描述,改为英语即可visit read "Health"and read data
7.iOS12.2UIWebView无法播放视频
报错信息:Unhandled Promise Rejection: NotAllowedError: The request is not allowed by the user agent or the platform in the current context, possibly because the user denied permission.
解决办法:mediaPlaybackRequiresUserAction设置为NO;这个属性的意思是:是否需要用户操作才能播放视频,默认为YES;