0

我需要检查宏中的 CFBundleIdentifier 以检查哪个目标正在运行以确定我是否可以导入文件但我无法弄清楚。

#if TARGET_IS_XYZ
#import SomeFile.h
#endif

我试过了:

#define TARGET_IS_XYZ [[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"] isEqualToString:@"com.app.xyz"]

但后来意识到 [NSBundle maindBundle] 直到运行时才可用,所以我不能使用它。有没有其他方法可以获取 CFBundleIdentifier 或检查正在运行的目标?

PS 目标是指应用目标,而不是 iOS 或 OSX。

4

1 回答 1

0

您的宏可能能够通过检查 TARGETNAME 或 PROJECT 环境变量来实现您的意图。或者,您可以设置每个构建变体以设置唯一的环境变量。还有一些方法(其语法现在让我无法理解):在构建时使用环境变量和宏在 info.plist 文件中设置值,这将允许您从一个点管理 appname 和文件包含。

于 2013-07-04T17:36:48.097 回答