我有一个带有两个独立目标的Xcode项目,我们都是TargetA和TargetB(具有不同的bundle id等)。他们都需要引用我们称之为SharedCode的嵌入式框架。此代码必须位于嵌入式框架中,因为在TargetA中,它在该目标和扩展之间共享。但是我需要在TargetA和TargetB之间使用SharedCode略有不同,所以我想设置一个名为FEATURE_1的Active Compilation Condition标志,但仅限于TargetA。似乎Active Compilation Condition标志不是可传递的 - 我不能为TargetA设置FEATURE_1标志而不能设置TargetB。还有另一种方法来实现这一目标吗?我想到了复制我的嵌入式框架并在那里设置不同的标志 - 但是我不能有两个具有相同名称的目标,当我尝试导入框架时,更改名称会导致噩梦。
答案 0 :(得分:0)
我能够通过复制SharedCode嵌入式框架目标来解决这个问题,创建SharedCodeA和SharedCodeB目标。然后我去了Build Settings并将产品名称覆盖到" SharedCode" (因此,对于每个SharedCodeA和SharedCodeB目标,它不再是$(TARGET_NAME))。两者的包ID仍然是" com.mycompany.SharedCode"。这使我能够继续使用"导入SharedCode"在TargetA和TargetB应用程序中。