Ответ 1
Вы можете добавить ключ "TargetName" в свой файл Info.plist:
Затем вы можете получить к нему доступ (быстрый код):
var plistFileName = NSBundle.mainBundle().infoDictionary?["TargetName"] as String
Мы знаем, что Xcode поддерживает переменную окружения ${TARGET_NAME}
, но как получить доступ к этой переменной в коде objective-C?
Что я пробовал?
Я добавил "TARGET_NAME=${TARGET_NAME}"
это в разделе макросов препроцессора в разделе "Настройки сборки". Но теперь я не уверен, как использовать эту переменную "TARGET_NAME"
как строку в коде objective-C.
В моем случае имя продукта и имя цели разные, поэтому нет возможности использовать это.
Я попытался получить доступ, используя
#ifdef TARGET_NAME
NSLog(@"TargetIdentifier %@",TARGET_NAME);
#endif
Этот код дает ошибку, например "Использование необъявленного идентификатора" myapptargetname "
Вы можете добавить ключ "TargetName" в свой файл Info.plist:
Затем вы можете получить к нему доступ (быстрый код):
var plistFileName = NSBundle.mainBundle().infoDictionary?["TargetName"] as String
NSLog(@"Target name: %@",[[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleName"]);
Надеюсь помочь вам!
Отредактировано: "CFBundleName" спасибо Макс и Дэниел Бо за вашу благодарность
Swift 3, Xcode 8 +
let targetName = Bundle.main.infoDictionary?["CFBundleName"] as? String ?? ""
В Xcode 7.3.1
if let targetName = NSBundle.mainBundle().infoDictionary?["CFBundleName"] as? String{
print(targetName)
}