以前公司一直用的企业号做的产品,但是今日需要提交到AppStore。里面有一些小的区别,这时候,就需要另外创建一个target来控制两个版本。
具体操作步骤如下:
1.点击左侧的工程名称,右侧会看到PROJECT和TARGETS,假如target为A, 点击target,右键。在弹出的菜单中,选择Duplicate,此时复制了一个和你原来工程一样的设置(编译条件、源文件、资源文件)同时生成了一个A copy-info.plist和A copy的scheme。此时就可以修改里面不同的编译条件和资源文件了。
2.改名。对A copy target改名,双击。然后改成B。
3.默认A copy-info.plist生成在程序环境的根目录下。如果想放到里层,可以先在xcode删除A copy-info.plist。然后拷贝文件到指定的目录中。然后更名为B-info.plist。然后add到project中。然后修改plist里面的参数,如:ProductName、Bundle identifier、version等。如果两个工程用的是一个pch,那么不就不用更改pch路径。
4.修改scheme,在停止运行的右边可以选择target。与新的target统一起来,点击scheme,选择Manager Scheme,然后将A copy改成B。
5.生成一个新的target,一定会与原来的target有区别,这时,可以定义预编译宏来区分。预编译宏可以在Build Settings中Preprocessor Macros定义,比如我们在新的target中定义预编译宏为MACRO,然后在代码中通过
#if defined (MACRO)
//target
#else
//target A需要执行的代码
#endif
来区分。
注:Build Phases中,如果创建了target B后,再往A里面添加资源或文件,target B中不会自动添加这些资源,需要手动添加。
第一次写博客,如有哪里写的不好的请指出,一起交流,共同学习。