Xcode 选择性编译的实现

都是iPhone X 惹的货。。。。

话说最近有用户说在iPhone X 上我们应用 展示的不友好,于是我们要搞适配(其实这事应该早下手的,但是我们的app 不支持模拟器。。。,这就是最大的坑,而且历史原因 里面的静态库的文件 不支持跨平台(x86_64上不可以用),导致之前一直都是真机调试),但是,一是iPhone X 比较贵,另外年末公司预算不批准买新机器,于是乎,将适配模拟器提上了日程。

先大体跑了跑,解决几个容易解决的:无非就是第三方的能找到模拟器的包的就 融合 替换下(lipo 命令 不懂的可以百度),下面就是棘手的问题了:找不到模拟器的包,咋整?下面说说我们采取的方案:另开辟一个scheme + xcode 选择性编译

开辟Scheme 用意是将真机与模拟器的target的分开,这样在添加(编译)文件的时候可以选择不同的target。

具体步骤如下:

1、将源TARGET 复制一份

复制完成之后如下所示


双击 copy 处 重命名为 后缀加上AAAAA

然后在 修改左上角的Scheme


点击Manage Schemes 


点击+号  然后在弹出窗 选择 新加的target


添加完成之后 再点击之前 copy 的那个scheme 然后点击-号  就完成了


有了两个target  添加文件的时候就可以根据不同的target 添加不同的文件了

第二个重要的步骤:对源码文件引入进行区分对待:此处的条件编译 拿是否是模拟器来举例

#if TARGET_IPHONE_SIMULATOR

#import "此文件只加到刚才的带AAAAA的TARGET上"

或者执行相应的代码

#elif TARGET_OS_IPHONE

#endif

这样就实现了 某些文件 只在某个scheme 上编译 从而解决一开始的问题了。。

这里只提供一个思路哈。。。。大神 轻喷。。

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,464评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,633评论 25 709
  • 朋友对我的第一印象都是稳重踏实,这句话从小学起听到工作后,每每听到这句话时我挺不服气的,心想我难道是长得太着急了吗...
    清清雾阅读 4,328评论 2 0
  • (更新时间2015年2月22日) 为什么需要锻炼自己的倾听能力? 1合作的需要,汇报你的工作,表述你的创意,传达你...
    Sandy的小屋阅读 3,821评论 3 12
  • 今天看了娘娘的关于如何处理丫头早恋的文章。 感觉看得不过瘾,想看续集。 看完后我有种共鸣,让我不由想起了儿子五年级...
    凌晨陈玲阅读 1,696评论 0 4