Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 共享嵌入式框架中的条件编译代码_Ios_Xcode - Fatal编程技术网

Ios 共享嵌入式框架中的条件编译代码

Ios 共享嵌入式框架中的条件编译代码,ios,xcode,Ios,Xcode,我有一个Xcode项目,它有两个独立的目标,我们都是TargetA和TargetB(具有不同的bundle id等)。它们都需要引用一个我们称之为SharedCode的嵌入式框架。这段代码必须在嵌入式框架中,因为在TargetA中,它在目标和扩展之间共享。但是我需要让TargetA和TargetB之间的SharedCode略有不同,所以我想设置一个名为FEATURE_1的活动编译条件标志,但只针对TargetA。活动编译条件标志似乎不是可传递的-我无法为TargetA设置FEATURE_1标志,

我有一个Xcode项目,它有两个独立的目标,我们都是TargetA和TargetB(具有不同的bundle id等)。它们都需要引用一个我们称之为SharedCode的嵌入式框架。这段代码必须在嵌入式框架中,因为在TargetA中,它在目标和扩展之间共享。但是我需要让TargetA和TargetB之间的SharedCode略有不同,所以我想设置一个名为FEATURE_1的活动编译条件标志,但只针对TargetA。活动编译条件标志似乎不是可传递的-我无法为TargetA设置FEATURE_1标志,但不能为TargetB设置。有没有其他方法可以做到这一点?我想复制我的嵌入式框架并在那里设置不同的标志-但我不能有两个同名的目标,当我尝试导入框架时,更改名称会导致噩梦。

我能够通过复制SharedCode嵌入式框架目标来解决这个问题,正在创建SharedCodeA和SharedCodeB目标。然后,我转到构建设置,并为每个SharedCode和SharedCode目标将产品名称改写为“SharedCode”(这样它就不再是$(TARGET_Name))。两者的bundle ID仍然是“com.mycompany.SharedCode”。这使我能够继续在TargetA和TargetB应用程序中使用“导入SharedCode”。

我能够通过复制SharedCode嵌入式框架目标、创建SharedCode和SharedCodeB目标来解决这个问题。然后,我转到构建设置,并为每个SharedCode和SharedCode目标将产品名称改写为“SharedCode”(这样它就不再是$(TARGET_Name))。两者的bundle ID仍然是“com.mycompany.SharedCode”。这使我能够继续在TargetA和TargetB应用程序中使用“导入共享代码”