[Diving into WWDC 2017] Labs 答疑纪实

每年 WWDC 的 Labs 都会有苹果的工程师在现场为开发者解答问题,以下是我们的提问和解答:( Q 为头条君的问题,A 为苹果工程师的解答)

Q:如何提升编译速度?我们本地编译一次要 5 分钟?

A:5 分钟?那听起来挺快的?(笑);尽量使用静态库,确保 LTO 选项在 Debug 阶段是关闭的,可以在 Release 下打开,对包大小和运行时速度有 10% 的优化;(头条尝试打开 LTO 后安装包大小减小了近 500 k)


Q:在 iOS 10 下,我们遇到了很多转屏的问题,特别是 CPU 很忙碌的时候,很容易复现,怎么解决?这是我们的 Demo,请看。

A:(看了一会 Demo)(皱眉)在 View Controller 里请尝试使用 preferredInterfaceOrientationForPresentation 这个 API 来处理转屏;这个 bug 我们确实收到过 bug report,也在尝试修复和解决;


Q:对热修复怎么看?有没有官方的热修复通道?

A:热修复?什么东西?不理解;BlaBla... (他们基本不用这种黑科技也没有研究过),任何产品和功能上架都必须走苹果的审核流程(很官方的回答),我们会加快审核速度,另外可以尝试一下 Phased Release 分阶段发布功能;


Q:Reachability 有时候不准,有网的时候却判断无网,我们有的请求先判断了 Reachability 就导致功能不可用T.T ?

A:aha, 我们不保证 Reachability 的准确性,另外你应该先发起网络请求再判断具体的网络情况,在 iOS 11 里 我们给 NSURLSession 添加了一个属性 BOOL waitForConectivity 你可以试试看;


Q:我们头条 App 在使用 StoryBoard 或者 xib 做启动图时遇到了黑屏的情况? 为什么生成启动图失败了?

A:失败?会吗?从没有人报过这个 bug,你们能复现吗?(答:偶现)那你们复现了把 Demo 发个 Radar 给我们吧,我叫 Simon 可以@我;


Q:Xcode 里字段配置会把设备自动添加到设备列表里,有什么好办法吗?

A:恩 是的,这确实不是一个特别好的设计,但是暂时还没有好办法,你再买一个开发者账号吧,只有 99 刀哦~