现有的项目中引入了直播SDK,但是市面上的直播SDK基本都不支持模拟器。如果用模拟器跑项目的话,一般都会有如下错误:

此时,我们需要做的,就是再建立一个只支持模拟器的Target。
步骤如下:
1.选中Target,右键,Duplicate,复制一个新的Target出来,然后重命名为你需要的名字。这里我起名Debug,因为让他只支持模拟器,只是为了方便调试。


2.执行完上面步骤后,会发现项目中多了一个Scheme和一个Info.plist。这两个就是新建立的Target对应的,我们也对他们分别重命名。


完成之后需要对新建立的Target选中对应的Info.plist,这样做的原因就是,如果仅仅重命名了,系统还是识别不了的,必须经过这几步,重新让系统识别plist文件

3.此时,新建Target的工作就已经做完了。下面,我们打开项目BuildSetting,搜索macros,添加需要在不同Target下有不同内容的字段。这里我们取名VersionType(VersionType=0对应一般模式,VersionType=1对应模拟器)。



结果如下:


5.以上就是建立多个Target的步骤。
可能有人会有疑问,我直接在pch中定义一个宏来判断不就好了么。为什么要这么麻烦。
这里说一下,建立不同的Target,可以不影响正常项目的使用。如果直接在pch中定义的话,如果在项目上线的时候忘了更改,那就会造成大错。
此外,建立不同的Target还可以分别设置Debug、Release等不同环境,分别设置不同的网络地址、信息配置等。
6.可能遇到的问题
上面制作好了新Target之后,可能会有“xx.h”file not found的问题。这是新的Target没有把之前的target的header复制过来,我们在项目的Header Search Path中添加就好了。

如果用了cocoapods,不要忘了两个targets都要设置

网友评论