因项目需求 会需要将同一份代码包装成不同外观的版本 所以我建立了不同的target
不同的target之间的区别仅仅是资源文件不同(使用文件夹引用) 以及在Appdelegate.h中会设置一个标识 然后会在其他公用的代码中利用这个标识来区分不同的版本
现在的问题是 有A,B,C 三个target 都有一个命名未Appdelegate.h的文件 但是在编译运行的时候会报错 A可以正常编译 但是B和C都会提示
duplicate interface definition for class 'AppDelegate'
然后B会提示在A中有过定义
但是每个target的Build Phase里的Compile source都分别包含的是各自的AppDelegate文件
这种情况要如何处理呢?
你的意思是你的项目有三个名Appdelegate.h的文件,为啥需要这么多个? 如果你只是希望区分开到底是哪个版本的话,你只需要在每个taget设置不同的Preprocess Marco就好了。 例如:target1 加APPVERSION=1, target2 加APPVERSION=2,target3 加APPVERSION=3。 然后公用代码里可以用 #if APPVERSION == 1 来判断