iOS 程序员使用M1芯片MacBook Pro两天体验: 部分第三方库有兼容问题

笔者是11号在官网下单的16G+512G的MacBook Pro,25号从上海发货,27号下午到手的。到今天已经差不多用了两天,体验下来,对于iOS开发,总结一句话,就是性能强劲,但尚有兼容问题。

笔者之前用的是18款的6核i7的15.6寸MacBook Pro,依然是16G+521G的组合。首先是用XcodeBanchmark这个项目测试了下,在i7的Mac上花了287秒,M1的Mac花了128秒。

接下来是在真机上编译公司的项目,公司的项目依赖了47个库,先clean cache后在编译,i7的Mac花了270秒,M1的Mac花了165秒。编译速度差不多是i7的1.7倍,提升还是很大的。

另外,在编译过程中,风扇几乎没有转动,所以也没有什么噪音。只是在后面的持续测试中,如果短时间连续编译多次,温度升高后,风扇才开始转动起来。但相比i7的,只要一开始编译,风扇就开始呼呼转动,已经是非常好了。

那么,测试到这里,是不是意味着M1的MacBook Pro对于iOS开发者已经非常完美了呢,并不是。上面测试公司项目的时候,我是直接把旧电脑里的项目整体拷贝到新电脑里测试的。接下来,我在M1的MacBook Pro上配置完整的开发环境时,就遇到了兼容性问题。

第一个兼容问题,是在bundle install 和 pod install 的时候,安装使用ffi时,一直报错,导致pod instal一直失败,最后通过搜索,参照https://github.com/CocoaPods/CocoaPods/issues/10220着里面的方法,用 `arch -x86_64 gem install ffi`,才最终成功。

第二个兼容问题,是在模拟器中编译时,一直报错"building for iOS Simulator, but linking in object file built for iOS, file '.../xxx.a' for architecture arm64”,试了网上各种方式,都解决不了,依然报错,最后是通过使用Rosetta运行Xcode,才最终在模拟器上编译成功,但由此带来了巨大的性能下降,编译速度直接降到i7的水平。

我自己分析在模拟器中编译失败的原因是,一些第三方的静态库,对于模拟器只编译了x86的版本,没有arm64的版本,而在M1芯片的MacBook里,模拟器也变成了arm架构,需要arm64的版本,因此导致编译到最后链接阶段时报错失败。

因此,我们可以推测,目前有不少第三方库在M1的Mac上会有兼容问题,在GitHub上,我也的确发现了几个这样的库。比如firebase就有这个问题:https://github.com/firebase/firebase-ios-sdk/issues/6520

这个兼容问题,只是在模拟器中编译时才有,如果时在真机编译,是不会有的,因为过去和现在,真机都是arm架构的。

以上是我使用M1的MacBook Pro两天的体验,目前来看着两个兼容问题都不大,都可以解决。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 使用这台13寸 Apple M1 芯片的 Macbook Pro 已经10天了,经过这些天的使用,我从以下几方面聊...
    iTerryWang阅读 4,862评论 2 4
  • 久违的晴天,家长会。 家长大会开好到教室时,离放学已经没多少时间了。班主任说已经安排了三个家长分享经验。 放学铃声...
    飘雪儿5阅读 7,552评论 16 22
  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,606评论 0 11
  • 可爱进取,孤独成精。努力飞翔,天堂翱翔。战争美好,孤独进取。胆大飞翔,成就辉煌。努力进取,遥望,和谐家园。可爱游走...
    赵原野阅读 2,766评论 1 1
  • 在妖界我有个名头叫胡百晓,无论是何事,只要找到胡百晓即可有解决的办法。因为是只狐狸大家以讹传讹叫我“倾城百晓”,...
    猫九0110阅读 3,331评论 7 3