用同一个工程创建两个不同版本的应用

创建两个Target:

1.首先先选中Target一个已经存在的版本, 右键 Duplicate

2.创建完之后你的新Target应该是和我的一样, 接下来我们就要修改Target, Scheme, Info-plist, 如图这样修改:

3.修改完了之后Target, Scheme, plist的名字之后, 你需要在新的Target添加对应的plist文件, 修改CFBundleDisplayName就可以修改应用的名字了

4.还要记得修改一下Product Name 不然你的Bundle Identifier的后缀名有copy和你的Target名字不一样, 你还需要在Bundle Setting做一下修改.

在代码里面利用宏定义来区分不同的Traget

1.在Bundle Setting里面设置一下Proprecessor Macros添加一份KFREE  KPRO的参数来区分到底是那个Traget. 在代码里面为需要用到这个宏去判断代码

2.在代码里面添加Proprecessor Macros里面宏定义, 你就会发现编译之前Xcode就会智能的选择不同代码. 这样你就共用一个项目管理两个不同版本的应用了, 大部分的代码都复用, 维护管理非常轻松.

⚠️:创建不同的target时,有个细节需要注意,那就是你的项目如果是xcworkspace时,先pod install后再去按照贴图上面的操作去完成,否则,先创建再pod install,projectName-dev和projectName-test就会出现报错,报错原因是pod的配置信息没完成或文件路径没索引到(我之前就遇到过,试了好多次,还好经过测试跳过了这个坑,)。

Xcode中可以利用Compiler Flags来设置宏

可以通过设置Compiler Flags来定义宏,然后就可以在代码中使用这些宏,来进行条件编译的操作。有三种方式设置:

// 在Target>Build Setting>Custom Compiler Flags>Other C Flags

OTHER_CFLAGS (Other C Flags)

// 在Target>Build Setting> Preprocessing > Preprocessor Macros

GCC_PREPROCESSOR_DEFINITIONS (Preprocessor Macros)

// 在Target>Build Setting> Packaging > Info.plist Preprocessor Definitions

INFOPLIST_PREPROCESSOR_DEFINITIONS (Info.plist Preprocessor Definitions)

参考

1.Xcode -Target , PROJECT 区别 - Xcode

2.用同一个工程创建两个不同版本的应用

3.如何在iOS项目中创建多个target

你可能感兴趣的:(用同一个工程创建两个不同版本的应用)