一个苹果辅助/工具/插件等

Xcode10踩坑记(需兼容iOS9的更新Xcode10请慎重考

2018-10-09  本文已影响55人  _小沫

Xcode10编译时会有一系列问题,这些问题网上很多文章都有同样的解决方法,这里就不再赘述。
接下来讲的Xcode10的坑,主要是在测试阶段及发布后的一些坑:

1. Xcode10运行项目,iOS12系统手机获取不了SSID;

SSID全称Service Set IDentifier, 即Wifi网络的公开名称。在iOS 4.1以上版本提供了公开的方法CNCopyCurrentNetworkInfo来获取该信息。
最近升级了Xcode10,运行项目后,发现iOS12手机获取的SSID为空,其他系统的手机一切正常。猜测是因为升级Xcode10的原因,然后查看了CNCopyCurrentNetworkInfo方法的文档发现了问题所在:

haha

也就是说要在iOS12或更高版本中使用此功能,要在Xcode中启用应用程序的访问WiFi信息功能。当启用该功能时,Xcode会自动将Access WiFi信息添加到授权文件和应用程序ID。

hehe

2. Xcode10打的包,发布到App Store后,iOS9.0,iOS9.1,iOS9.2系统启动APP就闪退

Xcode10 debug时iOS9 iOS10 iOS11 iOS12都试过,没有任何问题,但发布到App Store后就陆续收到用户反馈说启动APP就闪退。后来发现了这样的规律:闪退的客户手机系统都是集中在iOS9.0,iOS9.1,iOS9.2这三个系列系统中。后来历经千辛万苦在stackoverflow中找到答案:
这就是Xcode10的一个bug,Xcode10上传后的IPA经过AppStore处理后,iOS9.0,iOS9.1,iOS9.2加载Assets中的图会Crash。
Apple也意识到了这个bug,并发布了Xcode 10.1 beta 2修复了这个bug:

Resolves an issue that affected app compatibility with iOS 9.0, 9.1 and 9.2. Apps containing asset catalogs built with Xcode 10 whose deployment target was set to iOS 9.0, 9.1 or 9.2 would produce content incompatible with the runtimes of those iOS versions. Rebuilding the application with Xcode 10.1 resolves this issue. (44535967)

Apple建议我们使用Xcode 10.1重新打包,但我们害怕Xcode 10.1也会有其他bug,之后还是选择了旧版本的Xcode9.4重新打包了。(使用Xcode9.4前提是项目中没有用到一些iOS12的新特性)

所以现阶段千万不要用Xcode10打包发布应用,当然如果你的应用最低都不支持iOS9或者图片没有放在Assets中那就无所谓了。
3. Xcode10打的包上线App Store后,APP安装包大小显示不正确

App上线后,在App Store中无意中发现应用介绍中的APP体积比上个版本足足大了30多M。由于新版本只是改了些许bug,并未增加过什么资源文件,大了30M肯定是不正常的。一度以为是我们打包的过程出了什么差错,找了好久也没发现问题所在。后来在coacoa china论坛中看到有很多人都有类似的情况,怀疑是App Store的bug:之前App Store显示的应用大小是安装包的实际大小,而最新App Store显示的应用大小应该是预估的应用安装到手机上的大小。所以会差个30多M。
过了一个星期后,再去App Store查看应用大小发现恢复正常和之前的版本差不多了。确定是App Store的原因,App Store并修改了。

上一篇下一篇

猜你喜欢

热点阅读