2020年9月更新----

  此bug仅已在iOS 14正式版上修复,不要再安装beta版iOS 14了。

 


 

bug由来:

WKWebView大家都很熟悉,iOS上加载HTML的利器! 但是有些情况我们并不仅仅需要加载在线的url网址,还可能用来加载本地的HTML文件或者HTML代码。

可就在iOS 14发布之后,我们发现无法加载本地HTML了!

找bug:

打印本地HTML路径没有发现任何问题,测试发现iOS 13及以下都是可以加载的!但是为什么同样的方法代码在iOS 14上就不好使呢!!!

没办法升级最新的Xcode 12 beta版,用模拟器调试,网上搜索可能的答案,不断尝试。。

有人说要将资源文件从项目中拷贝到Document文件夹里。。。测试发现模拟器好使,但是真机依然不行。。。

绝望中。。。。。。

模拟器和真机的路径有什么不一样的地方??

拿出一部测试机,开始了iOS 14 beta版的升级。。。不用真机调试真的不行啊!!还从网上找了iOS 14 beta3真机调试包(因为我还是用的Xcode11.6)

又是漫长的调试过程,临近下班,神奇的一幕出现了,居然有个旧项目的安装包不受影响!!

哇塞!感觉一下子看到了生的希望!!!!马上对比可能出现问题的所有代码,不放过任何一个细节。。。

考虑到真机和模拟器的区别、旧项目可以运行(真是老天助我,设备上存留一个旧安装包)的细节,我把焦点放在了项目名称上。。。

最近升级Xcode的小伙伴可能会发现,当我修改项目的Display Name的时候,PRODUCT_NAME也跟着一起更改了!而且也不会再直接写进info.plist中,包括Version等信息。。。

以前打包出来可能是abc.ipa,现在变成了某某安装包.ipa,这一小小的改动害人不浅啊!

ios内容加载完后启动页消失 ios加载不出来_iOS 14

事实证明,重新将项目Display Name名称改为英文之后,测试居然通过了。。。通过了!!

但是,问题来了,看着手机桌面上英文名字的APP,又陷入了沉思。。。老板和客户不会允许我随便改APP名字的啊!

解决办法:

1、首先给APP起一个英文名,最简单的那种,反正是为了打包用的,用户不会看见。

2、修改Display Name为你刚你起的英文名,这时候运行一下,发现手机桌面上已成功变成了英文名。有能力的小伙伴可以直接去修改project.pbxproj中的PRODUCT_NAME的值,一样的功效。

ios内容加载完后启动页消失 ios加载不出来_WKWebView_02

3、参考以前Xcode修复info.plist的方式,将info.plist中的CFBundleDisplayName值修改为你APP的中文名字。

ios内容加载完后启动页消失 ios加载不出来_ios内容加载完后启动页消失_03

ios内容加载完后启动页消失 ios加载不出来_ios内容加载完后启动页消失_04

 

大功告成!在运行一下,发现一切又回到了熟悉的模样。第2步和第3步的顺序不能颠倒哦!!至于为什么,小伙伴自己慢慢体会吧!着急下班,有问题可以留言哦!

至于这是不是iOS 14文件路径的bug,还有待考证。估计苹果一时半会不会测出来中文路径带来的问题,毕竟人家是用英语开发的。。。