使用Xcode9出现的错误
全栈老韩
全栈工程师,擅长iOS App开发、前端(vue、react、nuxt、小程序&Taro)开发、Flutter、React Native、后端(midwayjs、golang、express、koa)开发、docker容器、seo优化等。
-
在使用“七牛”的库“PLMediaStreamingKit"时,会附带下载了一个"QNNetDiag"的库,在Xcode9下编译时,报错如下:

原因:七牛的库在Xcode9下编译不通过的问题。
解决方案:下载最新的QNNetDiag库,替换掉工程中的库;
参考:
http://www.cocoachina.com/bbs/read.php?tid-1726549.html
https://github.com/qiniu/iOS-netdiag/issues/9 -
导航栏
(1)如果通过UIBarButtonItem的initCustomView:方法来实例化,这个自定义的视图如果是UIButton或者UIImageView的话,frame会被拉伸;但是如果自定义视图是UIView的话,就不会被拉伸。
(2)导航栏的titleView:
在iOS11上,自定义title view,会被拉伸,需要给自定义的titleView的.m文件内部覆盖一个读取方法,将自己需要的尺寸大小设置进去。如下:

参考:
https://stackoverflow.com/questions/44932084/ios-11-navigationitem-titleview-width-not-set
http://www.jianshu.com/p/9391bea190e6
- 安全区域(SafeArea)
1)竖屏:

解决方法:
取“状态栏”和“导航栏”的高度:
// 状态栏(statusbar)
CGRect statusRect = [[UIApplication sharedApplication] statusBarFrame];
//标题栏
CGRect navRect = self.navigationController.navigationBar.frame;
底部的home indicator的高度为34(竖屏的情况下);
(2)横屏:

解决方法:
按照上图,进行安全区域的显示。
- 使用xcode 9,在有cocoapods的工程中,会出现AppIcons不显示的情况。
解决方法:
打开工程目录下:[工程名]/Pods/Target Support Files/Pods-[工程名]/Pods-[工程名]-resources.sh这个文件,替换最后一段代码:
修改前:
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}"
fi
修改后:
printf "%s\0" "${XCASSET_FILES[@]}" | xargs -0 xcrun actool --output-format human-readable-text --notices --warnings --platform "${PLATFORM_NAME}" --minimum-deployment-target "${!DEPLOYMENT_TARGET_SETTING_NAME}" ${TARGET_DEVICE_ARGS} --compress-pngs --compile "${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}" --app-icon "${ASSETCATALOG_COMPILER_APPICON_NAME}" --output-partial-info-plist "${BUILD_DIR}/assetcatalog_generated_info.plist"
fi
然后重新运行工程即可。
发布于2024-01-30 15:55:44
浏览量45·
暂无评论,快来发表第一条评论吧