我有一个包含多个目标的Xcode项目。假设目标名称是AppFreeVersion和AppPaidVersion。它们共享相同的代码基,但我想实现一些只针对其中一个目标的逻辑。
在不修改方案或构建设置的情况下,是否有方法获取当前目标名称的字符串?给定在这个问题上的解决方案要求我在构建设置中传递一个环境变量,这是我不想做的。
发布于 2016-04-21 02:58:43
在您的${TARGET_NAME}中添加info.plist如何?
我猜你已经知道怎么得到它了
Obj
[[NSBundle mainBundle] objectForInfoDictionaryKey:key_name];斯威夫特
let targetName = NSBundle.mainBundle().infoDictionary?[key_name] as String发布于 2017-04-09 12:03:18
Swift 3.0解决方案。
func getTargetName() -> String {
return Bundle.main.infoDictionary?["CFBundleName"] as! String
}发布于 2020-12-01 14:44:04
Niko接受的答案仍在为我编写Xcode 12.2和iOS 14.2
下面是一个屏幕截图,以更好地说明在Info.plist中需要做什么

您需要对每个目标的相应Info.plist执行此操作
您甚至不需要使用$(TARGET_NAME)作为值,您可以给出您自己的自定义唯一值,并检查这些值。
https://stackoverflow.com/questions/36758639
复制相似问题