我们有一个大项目,因此应用程序与一些常见代码分开。每个人都有自己的回购,应用程序使用公共代码作为lib通过cocoapods。
现在,我们需要切换lib中包含的一些非常具体的功能。但是启用/禁用它的条件是在application-prefix.pch文件中定义的MACRO(我知道,不是很酷)。
lib中的代码(作为Pod包含)不会“看到”pch文件中定义的MACRO。所以,我们实际上无法切换这种行为。
我见过的唯一选择是在我们的Podfile中添加一个安装后挂钩,但它似乎主要适用于Build Settings中定义的MACROS;而在这种情况下,MACRO在pch文件中定义。我真的真的不想在lib或podfile中添加值。
任何建议或想法指出我正确的方向将非常感谢!
答案 0 :(得分:0)
无法在Cocoapod的源代码中使用应用程序项目的宏-这是因为整个Pod目标将在应用程序目标甚至开始构建之前就已构建,因此Pod无法知道关于宏。
我的第一个直觉是使用您提到的安装后挂钩。但是,您也可以在另一个窗格中添加所需的宏,并使每个目标(包括窗格和主应用程序)都依赖于该新窗格。
另一种更简洁的方法:设计pod代码,使其能够在有或没有要使用的特定功能(例如布尔标志)下运行。然后,根据应用程序中宏的值,选择将该标志作为true或false传递给pod代码。