如何获取当前在Xcode中运行的目标的名称?

Enr*_*tyo 7 xcode build ios

我有一个包含多个目标的Xcode项目.让我们说目标名称是AppFreeVersionAppPaidVersion.它们共享相同的代码库,但我想实现一些仅适用于其中一个目标的逻辑.

如果不修改我的方案或构建设置,有没有办法获取我当前目标名称的字符串?这个问题中给出的解决方案要求我在构建设置中传递一个环境变量,我不想这样做.

Nik*_*ono 7

如何添加${TARGET_NAME}info.plist?

而且我猜你已经知道怎么做了

OBJ-C

[[NSBundle mainBundle] objectForInfoDictionaryKey:key_name];
Run Code Online (Sandbox Code Playgroud)

迅速

let targetName = NSBundle.mainBundle().infoDictionary?[key_name] as String
Run Code Online (Sandbox Code Playgroud)


Abo*_*tef 6

Swift 3.0解决方案.

func getTargetName() -> String {
    return Bundle.main.infoDictionary?["CFBundleName"] as! String
}
Run Code Online (Sandbox Code Playgroud)

  • CFBundleName不是目标名称 (3认同)