我有一個包含多個目標的Xcode項目。假設目標名稱是AppFreeVersion
和AppPaidVersion
。他們共享相同的代碼庫,但我想實現一些僅用於其中一個目標的邏輯。如何獲取當前在Xcode中運行的目標的名稱?
沒有修改我的計劃或建立設置,有沒有辦法讓我當前的目標名稱的字符串?給出的解決方案in this question要求我在構建設置中傳遞一個環境變量,這是我不想做的。
我有一個包含多個目標的Xcode項目。假設目標名稱是AppFreeVersion
和AppPaidVersion
。他們共享相同的代碼庫,但我想實現一些僅用於其中一個目標的邏輯。如何獲取當前在Xcode中運行的目標的名稱?
沒有修改我的計劃或建立設置,有沒有辦法讓我當前的目標名稱的字符串?給出的解決方案in this question要求我在構建設置中傳遞一個環境變量,這是我不想做的。
如何在您的info.plist中添加${TARGET_NAME}
?
我猜你已經知道如何在您的計劃得到它
對象 -
[[NSBundle mainBundle] objectForInfoDictionaryKey:key_name];
斯威夫特
let targetName = NSBundle.mainBundle().infoDictionary?[key_name] as String
只要設定目標的名字 - >環境變量 - >添加名稱和價值。 例如:目標名稱= 「mytesttarget」
的OBJ-C
的NSDictionary * ENVIR = [[NSProcessInfo processInfo]環境]。
NSString * targetName = envir [@「targetName」];
夫特
設ENVIR = NSProcessInfo.processInfo()。環境
讓目標名稱= ENVIR [ 「目標名稱」]
夫特3.0解決方案。
func getTargetName() -> String {
return Bundle.main.infoDictionary?["CFBundleName"] as! String
}
CFBundleName不是目標名稱 – brainray
這仍然可用於Xcode 9嗎?我將它添加到Info.plist中,但它似乎不起作用 – brainray