iOS 多Target, Other link Flag
在创建多个马甲包或者多个App间只有很小的差异是使用多Target是一种很好的方法
https://www.jianshu.com/p/18db54655246
1:选中原始的Target, 点击右键选中Duplicate,之后会生成一个Target Copy。
2:更改Copy出来的Target的名字为需要的名字
3:更改Scheme为对应的名字。 选中 Manage Schemes 更改对应的名称。
4:点击close。初步完成。
5:更改info.plist 的名字,最好将所有的info.plist 放在一起方便管理。更改info.plist为正确的路径。
6:设置Macro,由于swift中没有宏,所以要设置标志物 Other Swift Flags 即 ‘-D+Name’
swift添加标志位要加‘-D+Name’
1 //swift 中标志位的使用 2 #if APPTYPE1 3 print("哇哈哈"); 4 #elseif APPTYPE0 5 print("冰激凌"); 6 #else 7 print("未知的"); 8 #endif
1 // OC 中宏 2 #if APPTYPE == 0 3 NSLog("哇哈哈"); 4 #else 5 NSLog("冰激凌"); 6 #endif
二: Other linker Flags
1 -Objc:告诉链接器将库中的所有Objective-C和Category类都加载进来(命名不重复的类)。缺点,会将没有用到的类也加载进来,导致App变大,同事如果只有 Category类,-Objc不起作用
2 -all_load:强制将所有的类都加载进来,可以解决只有Category类的问题。但是静态库中命名重复的类会被重复导入出现问题。
3 -force_load:类似all_load,可以指定完全加载某个静态库,而不影响其他的库。