Xamarin Forms iOS 11启动屏中间出现黑块问题求助
解决iOS 11下Xamarin Forms启动屏显示黑块的问题
我之前也碰到过类似的本地化切换后启动屏异常的情况,结合你的描述(iOS11专属、改图片名临时恢复、使用LaunchScreen.storyboard),大概率是iOS11的启动屏缓存+本地化资源引用冲突导致的,下面给你几个针对性的解决办法:
一、彻底清除启动屏缓存
iOS11对启动屏的缓存机制比较“顽固”,尤其是切换本地化后,旧的缓存不会自动清理,你可以试试这些操作:
- 从设备上完全卸载应用,重启设备后再重新部署安装
- 在Xcode中执行
Product > Clean Build Folder(快捷键Shift+Command+K),然后回到VS中删除项目目录下的bin和obj文件夹,重新生成解决方案
二、检查LaunchScreen.storyboard的图片本地化设置
问题是在切换语言后出现的,很可能是图片的本地化配置有问题:
- 打开LaunchScreen.storyboard,选中启动屏的图片控件,在右侧属性面板查看
Image字段,确认引用的是非本地化的图片资源;如果需要本地化图片,要确保对应语言的资源包中都有同名图片 - 检查项目中图片资源的属性:右键iOS项目的资源文件,选择
Properties,确认图片的Build Action是BundleResource,且Localization设置正确(不需要本地化的话,不要勾选任何语言)
三、修复Xamarin与Xcode的资源同步问题
有时候VS和Xcode之间的资源同步会出问题,尤其是使用LaunchScreen.storyboard时:
- 右键iOS项目,选择
Open in Xcode,在Xcode中打开LaunchScreen.storyboard后重新保存(哪怕没修改内容),再回到VS中重新生成项目 - 确认Xcode的Command Line Tools配置正确:打开Xcode > Preferences > Locations,在Command Line Tools中选择对应的Xcode版本(你的VS2017 15.7.2需要Xcode 9.3及以上,最新版Xcode是符合要求的)
四、临时绕过缓存的快速方案
如果上面的方法都暂时没效果,可以试试这个应急方案:
- 给LaunchScreen.storyboard中的图片换一个全新的文件名(不要和之前的重名),同时更新项目中的图片资源,确保新图片的
Build Action配置正确,这样可以直接绕过系统的旧缓存
另外可以顺便检查下:iOS11的启动屏尺寸适配是否正确,确保图片符合对应设备的启动屏尺寸要求(不过你说改名字能恢复,这个可能性不大,但多排查一步没坏处)
内容的提问来源于stack exchange,提问作者Elias Nawfal
相关产品推荐
相关产品推荐

