【IOS】如何让编译器跳过不支持模拟器的.a文件

我们开发中经常会遇到使用第三方功能的.a静态库文件.

有的.a文件支持的架构比较多,x86,arm64,arm7s,arm7这样我们编译的时候不会出错.但是如果支持的架构越多.我们最终生成的ipa包将会越大.比如x86的架构,我们上线版本根本用不到,或者第三方根本没有给我们提供支持x86的.a文件,那怎么办呢?

有人说,我们直接用真机运行不就得了?或者直接要求让第三方提供给我们支持全架构的.a文件

一来,真机运行慢不说,有时候我们需要模拟器运行录制一些动画或者操作,真机就没法实现了.
二来,.a文件可能不全部都是可以得到支持x86的包.比如你从网上下载的一个.a文件.如何去找源码生成支持x86的.a文件呢?

所以我们可以这样做,

.a静态包,你刚刚导入的时候,不管真机还是模拟器都是不会编译报错的,这就证明,只有在用到其中的方法的时候,编译器才会去检测我们的.a文件是不是又当前支持的设备架构.

因此我们可以这样解决.

#if TARGET_IPHONE_SIMULATOR
    
#else
  //调用第三方.a文件中的方法
#endif

再次编译,通过!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,955评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,828评论 19 139
  • Ubuntu的发音 Ubuntu,源于非洲祖鲁人和科萨人的语言,发作 oo-boon-too 的音。了解发音是有意...
    萤火虫de梦阅读 99,980评论 9 468
  • 昨日,一朋友在空间发了一条说说,“大家加我微信吧,QQ不用了啊”。很平常的事,最近几年大家都好像转战到微信。...
    二淘淘阅读 1,490评论 0 1
  • 绑定分为 1:关键字与语法逻辑的绑定---作用域限定 2:变量和存储位置的绑定---生存周期限定 JS不具备全部的...
    daisx阅读 1,315评论 0 0

友情链接更多精彩内容