需求:最近项目接入了一个三方SDK,但是它不支持模拟器运行。这对缺乏多机型开发的团队是不可接受的。为了方便适配,所以研究了让模拟器跑起来的方法。
方案:在三方公司不能支持SDK模拟器运行的时候,我们只好自己动手丰衣足食了。我采用的方案是多target来解决。
原理:在发布的target版本中引入需要的SDK,所以这个target只支持真机运行;在平常开发测试的target版本做其他需求开发。这样就可以适配其他业务模块。
步骤一:添加测试环境的target
右键TestProject -> Duplicate
自动生成一个target,我们可以自己修改下名字
步骤二:添加Flag(用来区分哪个target)
1、Swift工程:Build Setting->Other Swift Flags->Add
使用方式:
#if thirdSDK
print(“使用三方SDK”)
#endif
2、OC工程:build setting中搜索 macro,在preprocessor Macros展开状态下,对新复制出的target的debug和release下都加上宏定义。
使用方式:
#if thirdSDK
print(“使用三方SDK”)
#endif
注意事项:多个target环境,我们在添加文件和资源的时候需要注意,哪些target需要,就需要勾选对应的target。如下图:
总结:通过多target可以解决诸多不同环境导致的问题。对于自动化打包配置更是不可或缺。后面需要其他需求再做补充。