都是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 上编译 从而解决一开始的问题了。。
这里只提供一个思路哈。。。。大神 轻喷。。











网友评论