行动性能平台Emerge Tools发现,iOS开发者改用Xcode 14构建应用程序,可能导致应用程序大小大幅增加,该公司分析应用程序容量增加的原因,是Xcode 14默认停用位元码(Bitcode)构建功能,Apple不会再替开发者去除不必要的二进制符码,使得最终应用程序包含许多无用元数据。
Apple最新的Xcode 14有许多性能与容量改进,整体容量小了30%,更好的平行运算加速项目构建速度25%,长期执行测试的速度也快了30%,但Emerge Tools的首席执行官Josh Cohenzadeh提到,开发者在使用Xcode 14之后,应该会发现构建出来的iOS应用程序大小明显增加。
Emerge Tools定期从Apple Store下载应用程序进行分析,观察到Xcode 14发布不久后,不少应用程序大小明显增加,先是Zillow,再来是Nike iOS App从182.2 MB增长到322.1 MB,American Airlines则是从182.2 MB变大至389.1 MB,Chime也从162.8 MB上升到212.8 MB。Josh Cohenzadeh表示,这每一个应用程序容量跃增,都是因为第一次使用Xcode 14构建。
Emerge Tools比较了Nike iOS App使用Xcode 14前后应用程序的大小,10月8日版本22.35.0的Emerge分析中,总安装大小为191.7 MB而框架占163.7 MB,到了10月15日的版本22.36.1,应用程序总安装大小322.1 MB,其中框架大小上升127.3 MB至293.8 MB,而Emerge Tools发现这增长的大小,皆来自DYLD.String表格增加,而这是产品环境不需要的元数据,也就是说Nike iOS App在没有任何重大功能变化下,应用程序就增加了130 MB。
而之所以出现此状况,是因为Xcode 14默认停用位元码构建,使用位元码构建的功能,也会在未来的Xcode版本中移除。位元码是一种打包应用程序的方法,会将部分构建过程留给Apple,在开发者将应用程序提交给App Store后,Apple会将二进制符码去除。
去除二进制符码是从二进制文件中,删除特定类型的元数据,这些元数据在产品环境之前可能有用,但是对在产品环境中执行的应用程序并没有用处,像是生成dSYM文件,就只会使产品版本变大。
简单来说,位元码通过去除二进制符码来优化产品构建,在没有打开位元码功能的情况下,开发者需要变更Xcode构建设置,来去除二进制符码。应用程序大小很重要的原因,Josh Cohenzadeh解释,因为应用程序大小是影响用户安装和移除的重要因素之一,持续监控应用程序将可提早发现类似的问题。
领取专属 10元无门槛券
私享最新 技术干货